我正在尝试将Tiled Map渲染到Android设备上。但是,当我在我的Android手机上测试它时,只有顶层被渲染到屏幕上(总共有两层)。有没有办法来解决这个问题?我正在使用Libgdx以及Tiled Map Editor。
以下是我的项目实现Screen界面的一些代码。省略的代码对于问题不是必需的,但如果需要可以显示。
public class Play implements Screen {
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.setView(cam);
renderer.render();
/*code ommited*/
renderer.getSpriteBatch().begin();
animateAgent(time);
sr.setProjectionMatrix(cam.combined);
try {
animateBullets(sr);
} catch(IndexOutOfBoundsException e) {}
renderer.getSpriteBatch().end();
}
public void show() {
cam = new OrthographicCamera();
cam.setToOrtho(false);
cam.position.set(0,0,0);
cam.zoom = 8.0f;
cam.update();
map = new TmxMapLoader().load("data/batMap.tmx");
blocked = (TiledMapTileLayer) map.getLayers().get(1);
renderer = new OrthogonalTiledMapRenderer(map);
atlas = new TextureAtlas("data/specOps.txt");
agent = atlas.createSprites("agent");
/* code ommitted */
player = new Player(agent,blocked,bullets);
Gdx.input.setInputProcessor(player);
}
}
答案 0 :(得分:1)
您只能在
获得一个图层 blocked = (TiledMapTileLayer) map.getLayers().get(1);
或者你在别处获得了另一层吗?
答案 1 :(得分:1)
Try:
map.getLayers().get(0).setVisible(true);
map.getLayers().get(1).setVisible(true);