I am making a tiled based game, I want not to let the camera show places, where there is no map... this is a obvious solution I got from a tutorial

}else if(camera.position.x>map.width*map.tileWidth-400){

}else if(camera.position.y>map.height*map.tileHeight-240){


but I don't know how to get width & height of the tiledMap in the latest version of libgdx


Seems strange... I even tried the Super classes but couldn't find. Please help.

TiledMap tiledMap = new TmxMapLoader().load("path/to/tiled/map.tmx");   
MapProperties prop = tiledMap.getProperties();

int mapWidth = prop.get("width", Integer.class);
int mapHeight = prop.get("height", Integer.class);
int tilePixelWidth = prop.get("tilewidth", Integer.class);
int tilePixelHeight = prop.get("tileheight", Integer.class);

int mapPixelWidth = mapWidth * tilePixelWidth;
int mapPixelHeight = mapHeight * tilePixelHeight;

The mapWidth and mapHeight are the dimensions of the map in tiles. So they would both be 10 in a 10x10 grid. The tilePixelWidth and tilePixelHeight are the dimensions of the tiles in pixels. In a 32x32 tileset they would both be 32. Multiplying the dimensions together you will get the map dimensions in pixels.

  • 1
    \$\begingroup\$ Hi there, mobo! Could you explain a little bit more about the snippet? It might help others. \$\endgroup\$ Jun 13 '13 at 14:05
  • 2
    \$\begingroup\$ MapProperties is just an Object map that holds any properties of the TileMap. If you are using a .tmx file its any of the properties in the first line: width, height, tilewidth, tileheight, orientation are all there by default. The cod was wrong and I am fixed it. \$\endgroup\$
    – mobo
    Jun 13 '13 at 14:19
  • \$\begingroup\$ Thanks a lot - your contribution is appreciated I'm sure. :) \$\endgroup\$ Jun 13 '13 at 14:38

The information you seek is in the object of TiledMapLayer.

TiledMapTileLayer layer = (TiledMapTileLayer)tiledMap.getLayers().get(0);


TiledMapTileLayer layer = (TiledMapTileLayer)tiledMap.getLayers().get("my_layer");

then you can use:

  • layer.getTileWidth(); to access tile width in pixels.
  • layer.getTileHeight(); to access tile height in pixels.
  • layer.getWidth(); to access number of tiles, horizontally.
  • layer.getHeight(); to access number of tiles, vertically.
  • layer.getTileWidth() * layer.getWidth(); to work out the map width in pixels.
  • layer.getTileHeight() * layer.getHeight(); to work out the map height in pixels.

To set change a specific tile,

TiledMapTile tile = null;
int column = 0;
int row = 0;
Cell cell = new Cell();
layer.setCell(column, row, cell);

and to get a specific tile,

int column = 0;
int row = 0;
Cell cell = layer.getCell(column, row);
TiledMapTile tile = cell.getTile();

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.