2

我正在尝试将平铺地图渲染到 Android 设备上。然而,当我在我的安卓手机上测试它时,只有顶层被渲染到屏幕上(总共两层)。有没有办法来解决这个问题?我正在使用 Libgdx 以及平铺地图编辑器。

下面是我的项目的一些代码,它实现了 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);
}
}

这是它目前的样子: 在此处输入图像描述 它应该是这样的: 在此处输入图像描述

4

2 回答 2

1

你只得到一层

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

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

于 2014-11-13T14:34:57.160 回答
1

尝试:

map.getLayers().get(0).setVisible(true);
map.getLayers().get(1).setVisible(true);
于 2015-07-28T16:19:12.230 回答