LibGDX TiledMap坚持使用舞台

时间:2017-11-21 15:25:19

标签: java libgdx scene2d

我有一个带有舞台和TiledMap的屏幕。地图呈现正常,但尝试移动相机不会对地图做任何事情。在下面的代码中,相机正在向右移动,因此图像会在屏幕上显示,但地图会“粘在”屏幕上。

Before

About Half A Second Later

public class TestScreen implements Screen{
private Stage stage;

private TiledMap testMap;
private OrthogonalTiledMapRenderer mapRenderer;
private Image image;

public TestScreen() {
    stage = new Stage(new StretchViewport(GameBase.WIDTH, GameBase.HEIGHT));

    testMap = GameBase.assets.getLevel("level25");

    image = new Image(GameBase.assets.getTexture("sleuth"));
    stage.addActor(image);
    mapRenderer = new OrthogonalTiledMapRenderer(testMap, 1f);
    mapRenderer.setView(stage.getCamera().combined, 0, 0, GameBase.WIDTH, GameBase.HEIGHT);
    image.setOrigin(Align.center);
}

@Override
public void show() {    
    // TODO Auto-generated method stub

}

@Override
public void render(float delta) {
    image.rotateBy(2);

    stage.getCamera().position.x += 5;
    stage.getCamera().update();

    mapRenderer.render();
    stage.act(delta);
    stage.draw();
}

@Override
public void resize(int width, int height) {
    stage.getViewport().update(width, height, true);
}

1 个答案:

答案 0 :(得分:0)

您必须在每个帧上调用mapRenderer.setView(stage.getCamera());来更新图块地图上的视图。