コード例 #1
0
 /**
  * Create a new BackgroundPainter. The tiles used for painting will be cut non-uniformly, so that
  * the grid will be placed according to the given dimensions.
  *
  * @param image image name
  * @param leftWidth width of the left tile row
  * @param centerWidth width of the center tile row
  * @param topHeight height of the top tile row
  * @param centerHeight height of the center tile row
  */
 public BackgroundPainter(
     String image, int leftWidth, int centerWidth, int topHeight, int centerHeight) {
   tileWidth = 0;
   tileHeight = 0;
   SpriteStore store = SpriteStore.get();
   Sprite mother = store.getSprite(image);
   images = new Sprite[9];
   int[] widths = new int[3];
   widths[0] = leftWidth;
   widths[1] = centerWidth;
   widths[2] = mother.getWidth() - leftWidth - centerWidth;
   int[] heights = new int[3];
   heights[0] = topHeight;
   heights[1] = centerHeight;
   heights[2] = mother.getHeight() - topHeight - centerHeight;
   int x = 0;
   int y = 0;
   int i = 0;
   for (int yInd = 0; yInd < 3; yInd++) {
     for (int xInd = 0; xInd < 3; xInd++) {
       images[i] = store.getTile(mother, x, y, widths[xInd], heights[yInd]);
       x += widths[xInd];
       i++;
     }
     x = 0;
     y += heights[yInd];
   }
 }
コード例 #2
0
 /**
  * Create a new BackgroundPainter.
  *
  * @param image image name. The image dimensions should be multiples of 3. The tiles used for
  *     painting will be the image divided uniformly to three in both vertical and horizontal
  *     directions
  */
 public BackgroundPainter(String image) {
   SpriteStore store = SpriteStore.get();
   Sprite mother = store.getSprite(image);
   this.tileWidth = mother.getWidth() / 3;
   this.tileHeight = mother.getHeight() / 3;
   images = new Sprite[9];
   int i = 0;
   for (int y = 0; y < 3 * tileHeight; y += tileHeight) {
     for (int x = 0; x < 3 * tileWidth; x += tileWidth) {
       images[i] = store.getTile(mother, x, y, tileWidth, tileHeight);
       i++;
     }
   }
 }