List of usage examples for com.badlogic.gdx.maps.tiled TiledMapTileLayer setName
public void setName(String name)
From source file:ca.hiphiparray.amazingmaze.MapFactory.java
License:Open Source License
/** * Return a map generated with the {@link MapFactory}'s parameters. * * @return a tiled map./*from w w w .j a va 2 s . c o m*/ */ public TiledMap generateMap() { TiledMap map = new TiledMap(); map.getTileSets().addTileSet(assets.tiles); TiledMapTileLayer backgroundLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE, MazeScreen.TILE_SIZE); backgroundLayer.setName(BACKGROUND_LAYER); for (int c = 0; c < backgroundLayer.getWidth(); c++) { for (int r = 0; r < backgroundLayer.getHeight(); r++) { Cell cell = new Cell(); cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BACKGROUND))); backgroundLayer.setCell(c, r, cell); } } map.getLayers().add(backgroundLayer); final int gateSpace = 2; final int extraRoom = 3; List<Integer> splits = generateWireLocations(); TiledMapTileLayer objectLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE, MazeScreen.TILE_SIZE); objectLayer.setName(OBJECT_LAYER); TiledMapTileLayer wireLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE, MazeScreen.TILE_SIZE); wireLayer.setName(WIRE_LAYER); for (int col : splits) { // Place the middle barriers and the unknown wires. boolean upperOutput = random.nextBoolean(); Circuit upperGate = new Circuit(upperOutput, random); Circuit lowerGate = new Circuit(!upperOutput, random); Point highLocation = new Point(col, height - gateSpace); Point lowLocation = new Point(col, gateSpace - 1); if (Circuit.evaluateGate(upperGate.getGate(), upperGate.isInputA(), upperGate.isInputB())) { gateOn.add(upperGate); } else { gateOn.add(lowerGate); } placeUpperCircuit(objectLayer, upperGate, highLocation); placeLowerCircuit(objectLayer, lowerGate, lowLocation); int barrierLoc = randomInt(gateSpace + extraRoom, height - (gateSpace + extraRoom)); Cell cell = new Cell(); cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER))); objectLayer.setCell(col, barrierLoc, cell); for (int r = barrierLoc - 1; r >= gateSpace; r--) { // Place the lower wires. WireCell wire = new WireCell(!upperOutput); wire.setTile(assets.tiles .getTile(TileIDs.computeID(TileIDs.WIRE_RANGE, TileIDs.VERTICAL, TileIDs.UNKNOWN))); wireLayer.setCell(col, r, wire); } for (int r = barrierLoc + 1; r < height - gateSpace; r++) { // Place the upper wires. WireCell wire = new WireCell(upperOutput); wire.setTile(assets.tiles .getTile(TileIDs.computeID(TileIDs.WIRE_RANGE, TileIDs.VERTICAL, TileIDs.UNKNOWN))); wireLayer.setCell(col, r, wire); } } for (int c = 0; c < width; c++) { if (!splits.contains(c)) { Cell cell = new Cell(); cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER))); objectLayer.setCell(c, gateSpace, cell); cell = new Cell(); cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER))); objectLayer.setCell(c, height - gateSpace - 1, cell); } } map.getLayers().add(objectLayer); map.getLayers().add(wireLayer); TiledMapTileLayer powerUpLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE, MazeScreen.TILE_SIZE); powerUpLayer.setName(ITEM_LAYER); for (int c = 1; c < width; c++) { if (!splits.contains(c)) { if (random.nextDouble() <= 0.25) { placeFish(powerUpLayer, c, gateSpace); c++; } else if (random.nextDouble() <= 0.1) { placeCheese(powerUpLayer, c, gateSpace); c++; } } } map.getLayers().add(powerUpLayer); return map; }
From source file:de.bitowl.advent.game2.MyAtlasTmxMapLoader.java
License:Apache License
protected void loadTileLayer(TiledMap map, Element element) { if (element.getName().equals("layer")) { String name = element.getAttribute("name", null); int width = element.getIntAttribute("width", 0); int height = element.getIntAttribute("height", 0); int tileWidth = element.getParent().getIntAttribute("tilewidth", 0); int tileHeight = element.getParent().getIntAttribute("tileheight", 0); boolean visible = element.getIntAttribute("visible", 1) == 1; float opacity = element.getFloatAttribute("opacity", 1.0f); TiledMapTileLayer layer = new TiledMapTileLayer(width, height, tileWidth, tileHeight); layer.setVisible(visible);// w w w . j av a 2 s . c om layer.setOpacity(opacity); layer.setName(name); TiledMapTileSets tilesets = map.getTileSets(); Element data = element.getChildByName("data"); String encoding = data.getAttribute("encoding", null); String compression = data.getAttribute("compression", null); if (encoding == null) { // no 'encoding' attribute means that the encoding is XML throw new GdxRuntimeException("Unsupported encoding (XML) for TMX Layer Data"); } if (encoding.equals("csv")) { String[] array = data.getText().split(","); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int id = (int) Long.parseLong(array[y * width + x].trim()); final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0); final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0); final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0); id = id & ~MASK_CLEAR; tilesets.getTile(id); TiledMapTile tile = tilesets.getTile(id); if (tile != null) { Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally); cell.setTile(tile); layer.setCell(x, yUp ? height - 1 - y : y, cell); } } } } else { if (encoding.equals("base64")) { byte[] bytes = Base64Coder.decode(data.getText()); if (compression == null) { int read = 0; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int id = unsignedByteToInt(bytes[read++]) | unsignedByteToInt(bytes[read++]) << 8 | unsignedByteToInt(bytes[read++]) << 16 | unsignedByteToInt(bytes[read++]) << 24; final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0); final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0); final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0); id = id & ~MASK_CLEAR; tilesets.getTile(id); TiledMapTile tile = tilesets.getTile(id); if (tile != null) { Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally); cell.setTile(tile); layer.setCell(x, yUp ? height - 1 - y : y, cell); } } } } else if (compression.equals("gzip")) { GZIPInputStream GZIS = null; try { GZIS = new GZIPInputStream(new ByteArrayInputStream(bytes), bytes.length); } catch (IOException e) { throw new GdxRuntimeException( "Error Reading TMX Layer Data - IOException: " + e.getMessage()); } byte[] temp = new byte[4]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { try { GZIS.read(temp, 0, 4); int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8 | unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24; final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0); final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0); final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0); id = id & ~MASK_CLEAR; tilesets.getTile(id); TiledMapTile tile = tilesets.getTile(id); if (tile != null) { Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally); cell.setTile(tile); layer.setCell(x, yUp ? height - 1 - y : y, cell); } } catch (IOException e) { throw new GdxRuntimeException("Error Reading TMX Layer Data.", e); } } } } else if (compression.equals("zlib")) { Inflater zlib = new Inflater(); byte[] temp = new byte[4]; zlib.setInput(bytes, 0, bytes.length); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { try { zlib.inflate(temp, 0, 4); int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8 | unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24; final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0); final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0); final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0); id = id & ~MASK_CLEAR; tilesets.getTile(id); if (id != 0) { String inset = "NONE"; if (tilesets.getTileSet(0).getTile(id) != null) { inset = tilesets.getTileSet(0).getName(); } else if (tilesets.getTileSet(1).getTile(id) != null) { inset = tilesets.getTileSet(1).getName(); } System.out.println("need tile " + id + inset); } TiledMapTile tile = tilesets.getTile(id); if (tile != null) { Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally); cell.setTile(tile); layer.setCell(x, yUp ? height - 1 - y : y, cell); } } catch (DataFormatException e) { throw new GdxRuntimeException("Error Reading TMX Layer Data.", e); } } } } } else { // any other value of 'encoding' is one we're not aware of, probably a feature of a future version of Tiled // or another editor throw new GdxRuntimeException("Unrecognised encoding (" + encoding + ") for TMX Layer Data"); } } Element properties = element.getChildByName("properties"); if (properties != null) { loadProperties(layer.getProperties(), properties); } map.getLayers().add(layer); } }