X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/FreeShisen/blobdiff_plain/1065ae67bcab7e10507617a2189026b63a180103..e1331c9ca833e2bcb07e8b3ad26c8c2394d279de:/src/de/cwde/freeshisen/Tileset.java diff --git a/src/de/cwde/freeshisen/Tileset.java b/src/de/cwde/freeshisen/Tileset.java new file mode 100644 index 0000000..6462e51 --- /dev/null +++ b/src/de/cwde/freeshisen/Tileset.java @@ -0,0 +1,90 @@ +package de.cwde.freeshisen; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.util.Log; + +public class Tileset { + public int tileWidth; + public int tileHeight; + public Bitmap[] tile; + private ShisenSho app; + + public Tileset(ShisenSho shishenSho) { + this.app = shishenSho; + } + + private void loadPNGTileset(int tilesetid, int screenWidth, int screenHeight) { + BitmapFactory.Options ops = new BitmapFactory.Options(); + ops.inScaled = false; + Bitmap tileset = BitmapFactory.decodeResource(app.getResources(), tilesetid, ops); + tileset.setDensity(Bitmap.DENSITY_NONE); + + // The tile set has 4 rows x 9 columns + int tilesetRows = 4; + int tilesetCols = 9; + int loadedtileWidth = tileset.getWidth()/tilesetCols; + int loadedtileHeight = tileset.getHeight()/tilesetRows; + tile = new Bitmap[tilesetRows*tilesetCols]; + + // align to screen: + // "large" is 16x6, and we want to have a nice border, so we use 17x7 and + // choose the lowest scale so everything fits + float scalex = ((float) (screenWidth - 2)/17) / loadedtileWidth; + float scaley = ((float) (screenHeight - 2)/7) / loadedtileHeight; + if (scaley < scalex) { + scalex = scaley; + } else { + scaley = scalex; + } + Matrix matrix = new Matrix(); + matrix.setScale(scalex, scaley); + + int k=0; + for (int i=0; i