private void init (TiledMap map) { String axis = map.getProperties().get("staggeraxis", String.class); if (axis != null) { if (axis.equals("x")) { String index = map.getProperties().get("staggerindex", String.class); if (index != null) { if (index.equals("even")) { Integer length = map.getProperties().get("hexsidelength", Integer.class); if (length != null) { hexSideLength = length.intValue(); } else { if (staggerAxisX) { length = map.getProperties().get("tilewidth", Integer.class); if (length != null) { hexSideLength = 0.5f * length.intValue(); } else { TiledMapTileLayer tmtl = (TiledMapTileLayer)map.getLayers().get(0); hexSideLength = 0.5f * tmtl.getTileWidth(); length = map.getProperties().get("tileheight", Integer.class); if (length != null) { hexSideLength = 0.5f * length.intValue(); } else { TiledMapTileLayer tmtl = (TiledMapTileLayer)map.getLayers().get(0); hexSideLength = 0.5f * tmtl.getTileHeight();
renderer = new IsometricTiledMapRenderer(map, 1f / 64f); String mapCustomValue = map.getProperties().get(MAP_PROPERTY_NAME, String.class); Gdx.app.log("TiledMapAssetManagerTest", "Property : " + MAP_PROPERTY_NAME + ", Value : " + mapCustomValue); if (!MAP_PROPERTY_VALUE.equals(mapCustomValue)) { boolean boolCustomValue = map.getProperties().get(BOOL_PROPERTY_NAME, Boolean.class); Gdx.app.log("TiledMapAssetManagerTest", "Property : " + BOOL_PROPERTY_NAME + ", Value : " + boolCustomValue); if (boolCustomValue != BOOL_PROPERTY_VALUE) { int intCustomValue = map.getProperties().get(INT_PROPERTY_NAME, Integer.class); Gdx.app.log("TiledMapAssetManagerTest", "Property : " + INT_PROPERTY_NAME + ", Value : " + intCustomValue); if (intCustomValue != INT_PROPERTY_VALUE) { float floatCustomValue = map.getProperties().get(FLOAT_PROPERTY_NAME, Float.class); Gdx.app.log("TiledMapAssetManagerTest", "Property : " + FLOAT_PROPERTY_NAME + ", Value : " + floatCustomValue); if (floatCustomValue != FLOAT_PROPERTY_VALUE) { TiledMapTileSet tileset = map.getTileSets().getTileSet(0); String tilesetCustomValue = tileset.getProperties().get(TILESET_PROPERTY_NAME, String.class); if (!TILESET_PROPERTY_VALUE.equals(tilesetCustomValue)) { MapLayer layer = map.getLayers().get(0); String layerCustomValue = layer.getProperties().get(LAYER_PROPERTY_NAME, String.class); if (!LAYER_PROPERTY_VALUE.equals(layerCustomValue)) {
@Override public void dispose () { map.dispose(); } }
protected TiledMap loadMap (Element root, FileHandle tmxFile, AtlasResolver resolver) { TiledMap map = new TiledMap(); String mapBackgroundColor = root.getAttribute("backgroundcolor", null); MapProperties mapProperties = map.getProperties(); if (mapOrientation != null) { mapProperties.put("orientation", mapOrientation); String elementName = element.getName(); if (elementName.equals("properties")) { loadProperties(map.getProperties(), element); } else if (elementName.equals("tileset")) { loadTileset(map, element, tmxFile, resolver); } else if (elementName.equals("layer")) { loadTileLayer(map, map.getLayers(), element); } else if (elementName.equals("objectgroup")) { loadObjectGroup(map, map.getLayers(), element);
/** Loads the map data, given the XML root element and an {@link ImageResolver} used to return the tileset Textures * @param root the XML root element * @param tmxFile the Filehandle of the tmx file * @param imageResolver the {@link ImageResolver} * @return the {@link TiledMap} */ private TiledMap loadMap (Element root, FileHandle tmxFile, ImageResolver imageResolver) { TiledMap map = new TiledMap(); Element properties = root.getChildByName("Properties"); if (properties != null) { loadProperties(map.getProperties(), properties); } Element tilesheets = root.getChildByName("TileSheets"); for (Element tilesheet : tilesheets.getChildrenByName("TileSheet")) { loadTileSheet(map, tilesheet, tmxFile, imageResolver); } Element layers = root.getChildByName("Layers"); for (Element layer : layers.getChildrenByName("Layer")) { loadLayer(map, layer); } return map; }
int width = element.getIntAttribute("width", 0); int height = element.getIntAttribute("height", 0); int tileWidth = map.getProperties().get("tilewidth", Integer.class); int tileHeight = map.getProperties().get("tileheight", Integer.class); TiledMapTileLayer layer = new TiledMapTileLayer(width, height, tileWidth, tileHeight); TiledMapTileSets tilesets = map.getTileSets(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) {
@Override public void render () { beginRender(); for (MapLayer layer : map.getLayers()) { renderMapLayer(layer); } endRender(); }
Element tileArray = element.getChildByName("TileArray"); Array<Element> rows = tileArray.getChildrenByName("Row"); TiledMapTileSets tilesets = map.getTileSets(); TiledMapTileSet currentTileSet = null; int firstgid = 0; map.getLayers().add(layer);
private String tilesetNameFromTileId (TiledMap map, int tileid) { String name = ""; if (tileid == 0) { return ""; } for (TiledMapTileSet tileset : map.getTileSets()) { int firstgid = tileset.getProperties().get("firstgid", -1, Integer.class); if (firstgid == -1) continue; // skip this tileset if (tileid >= firstgid) { name = tileset.getName(); } else { return name; } } return name; }
@Override protected void setup(int e, Terrain terrain, TerrainAsset asset) { if (terrain.id == null ) { throw new RuntimeException("TerrainManager: terrain.id is null."); } asset.map = loader.load(terrain.id); asset.renderer = new OrthogonalTiledMapRenderer(asset.map); //asset.layers = map.getLayers().getByType(TiledMapTileLayer.class); final MapProperties properties = asset.map.getProperties(); asset.width = properties.get("width", Integer.class); asset.height = properties.get("height", Integer.class); asset.tileWidth = properties.get("tilewidth", Integer.class); asset.tileHeight = properties.get("tileheight", Integer.class); // set unitialized size to asset. if (!mSize.has(e)) { mSize.create(e).set(asset.pixelWidth(), asset.pixelHeight()); } } }
public TiledMap load (String fileName) { try { FileHandle tideFile = resolve(fileName); root = xml.parse(tideFile); ObjectMap<String, Texture> textures = new ObjectMap<String, Texture>(); for (FileHandle textureFile : loadTileSheets(root, tideFile)) { textures.put(textureFile.path(), new Texture(textureFile)); } DirectImageResolver imageResolver = new DirectImageResolver(textures); TiledMap map = loadMap(root, tideFile, imageResolver); map.setOwnedResources(textures.values().toArray()); return map; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
TiledMap aMap = new TiledMap("whatever.tmx"); int objectGroupCount = aMap.getObjectGroupCount(); for( int gi; gi < objectGroupCount; gi++ ) // gi = object group index { int objectCount = aMap.getObjectCount(gi); for( int oi; oi < objectCount; oi++ ) // oi = object index { System.out.println( aMap.getObjectName(gi, oi) ); System.out.println( aMap.getObjectProperty(gi, oi, "somepropertyname", "" ) ); } }
grassMap = new TiledMap("folderOfYourMap/mapa.tmx");
protected TiledMap loadMap (Element root, FileHandle tmxFile, AtlasResolver resolver) { TiledMap map = new TiledMap(); String mapBackgroundColor = root.getAttribute("backgroundcolor", null); MapProperties mapProperties = map.getProperties(); if (mapOrientation != null) { mapProperties.put("orientation", mapOrientation); String elementName = element.getName(); if (elementName.equals("properties")) { loadProperties(map.getProperties(), element); } else if (elementName.equals("tileset")) { loadTileset(map, element, tmxFile, resolver); } else if (elementName.equals("layer")) { loadTileLayer(map, map.getLayers(), element); } else if (elementName.equals("objectgroup")) { loadObjectGroup(map, map.getLayers(), element);
int width = element.getIntAttribute("width", 0); int height = element.getIntAttribute("height", 0); int tileWidth = map.getProperties().get("tilewidth", Integer.class); int tileHeight = map.getProperties().get("tileheight", Integer.class); TiledMapTileLayer layer = new TiledMapTileLayer(width, height, tileWidth, tileHeight); TiledMapTileSets tilesets = map.getTileSets(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) {
@Override public void render () { beginRender(); for (MapLayer layer : map.getLayers()) { renderMapLayer(layer); } endRender(); }
Element tileArray = element.getChildByName("TileArray"); Array<Element> rows = tileArray.getChildrenByName("Row"); TiledMapTileSets tilesets = map.getTileSets(); TiledMapTileSet currentTileSet = null; int firstgid = 0; map.getLayers().add(layer);
private String tilesetNameFromTileId (TiledMap map, int tileid) { String name = ""; if (tileid == 0) { return ""; } for (TiledMapTileSet tileset : map.getTileSets()) { int firstgid = tileset.getProperties().get("firstgid", -1, Integer.class); if (firstgid == -1) continue; // skip this tileset if (tileid >= firstgid) { name = tileset.getName(); } else { return name; } } return name; }