libGDX更改tilemap

时间:2016-01-04 21:08:01

标签: libgdx tile

我正在用box2d制作一场2d篮板比赛。所以,我有一个问题。当我的一个身体(角色)与另一个(角色)碰撞时,地图需要改变,我是否应该为地图创建新的屏幕并更改它们?或者有更简单的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您只能在同一屏幕上更改当前地图。你要做的是,假设你的地图变量名是testMap。现在让我们假设您的玩家刚刚与一扇门相撞。现在假设你将调用一个名为changeMap()的方法。以下是您将changeMap()方法中的内容。 (假设您正在使用平铺地图,您可以在此相应地更改逻辑)

void changeMap() {
    Gdx.app.postRunnable(() -> { //Post runnable posts the below task in opengl thread
        testMap = new TmxMapLoader().load("someMap.tmx"); //load the new map
        renderer.getMap().dispose(); //dispose the old map
        renderer.setMap(testMap); //set the map in your renderer
    });
}