Sorry for the stupid question though it seems I’m not seeing the picture
I’m using Tiled Map Editor to create my maps, wrote a tiny handler to get most of the needed data
TMXHandler test = new TMXHandler("DA");
TMX_MapData data = test.getMapData();
HashMap<Integer,BufferedImage> tiled = new HashMap<Integer, BufferedImage>();
Graphics2D g2 = (Graphics2D) g;
try {
BufferedImage img = ImageIO.read(new File("src/com/prinnyware/resources/grasslandv6_0.png"));
ArrayList<TMX_Layer> layers = data.getLayers();
ArrayList<BufferedImage> mi = new ArrayList<BufferedImage>();
for (Iterator<TMX_Layer> it = layers.iterator(); it.hasNext();) {
TMX_Layer layer = it.next();
System.out.println(layer.getLayerName());
ArrayList<Integer> tiles = layer.getTiles(); // tiles loaded in layer
int columns = (506 / data.getTileWidth());
int lines = (768 / data.getTileHeight());
int counter = 1;
for (int incrlines = 0; incrlines < lines; incrlines++) {
for (int i = 0; i < columns; i++) {
// System.out.println(i * incrlines);
tiled.put(counter,img.getSubimage(i*32, incrlines*32, 32, 32));
//g2.drawImage(img.getSubimage(i*32, incrlines*32, 32, 32), null, i*32, incrlines*32);
counter++;
// System.out.println(counter);
}
}
With that code I can output pretty much the tileset image and store it (to match the gid later on). But I got stuck! now I kinda don’t know how to progress on how to load my tiles so I don’t know if I’m doing it right with my current approach or if I should take another route.
Googling around I got some matches and saw some people wrote another tmx handler though I saw something different
some had this:
drawClip: function(gid, scrollX, scrollY, offsetX, offsetY) {
var gid = parseInt(gid);
gid--; //tmx is 1-based, not 0-based. We need to subtract 1 to get to a proper mapping.
var tw = TILE_WIDTH;
var th = TILE_HEIGHT;
// # of tiles per row in tileset image
var perRow = this._width / tw;
// x and y in tileset image from where to copy
var sx = (gid % perRow) * tw;
var sy = Math.floor(gid / perRow) * th;
// x and y in canvas to copy to.
var dx = scrollX * tw + offsetX;
var dy = scrollY * th + offsetY;
// alert("sx: " + sx + " sy: " + sy + " dx: " + dx + " dy: " + dy);
mapCtx.drawImage(this._img, sx, sy, tw, th, dx, dy, tw, th);
}
so I wondered where do I take scrollX/Y from?
Thanks