libGDX 改变规模

libGDX change tilemap

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

您只能在同一屏幕上更改当前地图。您需要做的是,假设您的地图变量名称是 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
    });
}