BackgroundLayer.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:2k
源码类别:

J2ME

开发平台:

Java

  1. import javax.microedition.lcdui.*;
  2. import javax.microedition.lcdui.game.*;
  3. public class BackgroundLayer extends TiledLayer{
  4.     private int horizontalMove;
  5.     private int totalPixelLength;
  6.     
  7.     public BackgroundLayer(int columns, int rows, Image image, int tileWidth, int tileHeight){
  8.         super(columns, rows, image, tileWidth, tileHeight);
  9.         totalPixelLength = (columns * tileWidth);
  10.     }
  11.     
  12.     /**
  13.      * Sets the number of pixels to move  the layer each 
  14.      * time move() is called
  15.      */
  16.     public void setHorizontalMove(int aHorizontalMove){
  17.         horizontalMove = aHorizontalMove;
  18.     }
  19.     
  20.     /**
  21.      * Moves the background the number of pixels specified with
  22.      * setHorizontalMove()
  23.      */
  24.     public void move(){
  25.         super.move(horizontalMove,0);       
  26.         totalPixelLength += horizontalMove;
  27.     }
  28.     
  29.     /**
  30.      * Sets the Background's cells according to the information in the passed
  31.      * parameter int[] aCellMap.
  32.      * nbrfRows and nbrOfCols refers to the Background's layout
  33.      */
  34.     public void setCells(int[] aCellMap, int nbrOfRows, int nbrOfCols){
  35.         for (int i = 0; i < aCellMap.length; i++) {
  36.             int column = i % nbrOfCols;
  37.             int row = (i - column) / nbrOfCols;
  38.             setCell(column, row, aCellMap[i]);
  39.             
  40.         }
  41.     }
  42.     
  43.     /**
  44.      * Returns true if the Background has reached it's end,
  45.      * false otherwise.
  46.      */
  47.     public boolean endOfBackground(int aScreenWidth){
  48.         if (totalPixelLength-aScreenWidth>0){
  49.             return false;
  50.         }else{
  51.             return true;
  52.         }
  53.     }
  54. }