@Override public void renderObjects (MapLayer layer) { for (MapObject object : layer.getObjects()) { renderObject(object); } }
private void testMapProperty (MapLayer mapLayer, boolean visibleState, float opacity, int offsetX, int offsetY, boolean isGroup) { boolean isValid = mapLayer.isVisible() == visibleState && opacity == mapLayer.getOpacity() && offsetX == mapLayer.getOffsetX() && mapLayer.getOffsetY() == mapLayer.getOffsetY(); boolean groupInstance = mapLayer instanceof MapGroupLayer; if (isGroup && !groupInstance) { isValid = false; } if (!isGroup && groupInstance) { isValid = false; } if (!isValid) throw new GdxRuntimeException("Map layer " + mapLayer.getName() + " is not valid"); }
protected void loadBasicLayerInfo (MapLayer layer, Element element) { String name = element.getAttribute("name", null); float opacity = Float.parseFloat(element.getAttribute("opacity", "1.0")); boolean visible = element.getIntAttribute("visible", 1) == 1; float offsetX = element.getFloatAttribute("offsetx", 0); float offsetY = element.getFloatAttribute("offsety", 0); layer.setName(name); layer.setOpacity(opacity); layer.setVisible(visible); layer.setOffsetX(offsetX); layer.setOffsetY(offsetY); }
protected void calculateRenderOffsets () { if (parent != null) { parent.calculateRenderOffsets(); renderOffsetX = parent.getRenderOffsetX() + offsetX; renderOffsetY = parent.getRenderOffsetY() + offsetY; } else { renderOffsetX = offsetX; renderOffsetY = offsetY; } renderOffsetDirty = false; } }
protected void renderMapLayer (MapLayer layer) { if (!layer.isVisible()) return; if (layer instanceof MapGroupLayer) { MapLayers childLayers = ((MapGroupLayer)layer).getLayers(); for (int i = 0; i < childLayers.size(); i++) { MapLayer childLayer = childLayers.get(i); if (!childLayer.isVisible()) continue; renderMapLayer(childLayer); } } else { if (layer instanceof TiledMapTileLayer) { renderTileLayer((TiledMapTileLayer)layer); } else if (layer instanceof TiledMapImageLayer) { renderImageLayer((TiledMapImageLayer)layer); } else { renderObjects(layer); } } }
protected void loadObjectGroup (TiledMap map, MapLayers parentLayers, Element element) { if (element.getName().equals("objectgroup")) { MapLayer layer = new MapLayer(); loadBasicLayerInfo(layer, element); Element properties = element.getChildByName("properties"); if (properties != null) { loadProperties(layer.getProperties(), properties); } for (Element objectElement : element.getChildrenByName("object")) { loadObject(map, layer, objectElement); } parentLayers.add(layer); } }
protected void loadObjectGroup (TiledMap map, Element element) { if (element.getName().equals("objectgroup")) { String name = element.getAttribute("name", null); MapLayer layer = new MapLayer(); layer.setName(name); Element properties = element.getChildByName("properties"); if (properties != null) { loadProperties(layer.getProperties(), properties); } for (Element objectElement : element.getChildrenByName("object")) { loadObject(layer, objectElement); } map.getLayers().add(layer); } }
/** @param name * @return the first layer having the specified name, if one exists, otherwise null */ public MapLayer get (String name) { for (int i = 0, n = layers.size; i < n; i++) { MapLayer layer = layers.get(i); if (name.equals(layer.getName())) { return layer; } } return null; }
/** @return the layer's x render offset, this takes into consideration all parent layers' offsets **/ public float getRenderOffsetX () { if (renderOffsetDirty) calculateRenderOffsets(); return renderOffsetX; }
@Override public void render () { Gdx.gl.glClearColor(0.55f, 0.55f, 0.55f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); map.getLayers().get("group1Visible").setOffsetX(map.getLayers().get("group1Visible").getOffsetX() + 1); camera.update(); renderer.setView(camera); renderer.render(); }
String layerCustomValue = layer.getProperties().get(LAYER_PROPERTY_NAME, String.class); if (!LAYER_PROPERTY_VALUE.equals(layerCustomValue)) { throw new RuntimeException("Failed to get layer properties");
protected void renderMapLayer (MapLayer layer) { if (!layer.isVisible()) return; if (layer instanceof MapGroupLayer) { MapLayers childLayers = ((MapGroupLayer)layer).getLayers(); for (int i = 0; i < childLayers.size(); i++) { MapLayer childLayer = childLayers.get(i); if (!childLayer.isVisible()) continue; renderMapLayer(childLayer); } } else { if (layer instanceof TiledMapTileLayer) { renderTileLayer((TiledMapTileLayer)layer); } else if (layer instanceof TiledMapImageLayer) { renderImageLayer((TiledMapImageLayer)layer); } else { renderObjects(layer); } } }
protected void loadObjectGroup (TiledMap map, MapLayers parentLayers, Element element) { if (element.getName().equals("objectgroup")) { MapLayer layer = new MapLayer(); loadBasicLayerInfo(layer, element); Element properties = element.getChildByName("properties"); if (properties != null) { loadProperties(layer.getProperties(), properties); } for (Element objectElement : element.getChildrenByName("object")) { loadObject(map, layer, objectElement); } parentLayers.add(layer); } }
protected void calculateRenderOffsets () { if (parent != null) { parent.calculateRenderOffsets(); renderOffsetX = parent.getRenderOffsetX() + offsetX; renderOffsetY = parent.getRenderOffsetY() + offsetY; } else { renderOffsetX = offsetX; renderOffsetY = offsetY; } renderOffsetDirty = false; } }
/** @param name * @return the first layer having the specified name, if one exists, otherwise null */ public MapLayer get (String name) { for (int i = 0, n = layers.size; i < n; i++) { MapLayer layer = layers.get(i); if (name.equals(layer.getName())) { return layer; } } return null; }
/** @return the layer's y render offset, this takes into consideration all parent layers' offsets **/ public float getRenderOffsetY () { if (renderOffsetDirty) calculateRenderOffsets(); return renderOffsetY; }
@Override public void renderObjects (MapLayer layer) { for (MapObject object : layer.getObjects()) { renderObject(object); } }
protected void loadBasicLayerInfo (MapLayer layer, Element element) { String name = element.getAttribute("name", null); float opacity = Float.parseFloat(element.getAttribute("opacity", "1.0")); boolean visible = element.getIntAttribute("visible", 1) == 1; float offsetX = element.getFloatAttribute("offsetx", 0); float offsetY = element.getFloatAttribute("offsety", 0); layer.setName(name); layer.setOpacity(opacity); layer.setVisible(visible); layer.setOffsetX(offsetX); layer.setOffsetY(offsetY); }
for (int i : layers) { MapLayer layer = mapLayers.get(i); if (layer.isVisible()) { spriteCache.draw(i); renderObjects(layer);
protected void loadObjectGroup (TiledMap map, MapLayers parentLayers, Element element) { if (element.getName().equals("objectgroup")) { MapLayer layer = new MapLayer(); loadBasicLayerInfo(layer, element); Element properties = element.getChildByName("properties"); if (properties != null) { loadProperties(layer.getProperties(), properties); } for (Element objectElement : element.getChildrenByName("object")) { loadObject(map, layer, objectElement); } parentLayers.add(layer); } }