使用LibGdx在Android上渲染完整的Tiled Map

时间:2014-03-26 04:02:35

标签: java android libgdx tiled

我正在尝试将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);
}
}

以下是目前的情况: enter image description here 以及它应该如何看待: enter image description here

2 个答案:

答案 0 :(得分:1)

您只能在

获得一个图层
 blocked = (TiledMapTileLayer) map.getLayers().get(1);

或者你在别处获得了另一层吗?

答案 1 :(得分:1)

Try:

map.getLayers().get(0).setVisible(true);
map.getLayers().get(1).setVisible(true);
相关问题