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


当前的外观如下:
java - 使用LibGdx在Android上渲染完整的平铺 map-LMLPHP
这是它的外观:
java - 使用LibGdx在Android上渲染完整的平铺 map-LMLPHP

最佳答案

您只能得到一层

 blocked = (TiledMapTileLayer) map.getLayers().get(1);


还是在其他地方获得另一层?

关于java - 使用LibGdx在Android上渲染完整的平铺 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22651233/

10-10 07:52