Java Libgdx映射更改

Java Libgdx映射更改,java,libgdx,Java,Libgdx,我正在为我的计算机科学课上的一个FSE项目制作一个rpg游戏,我需要在游戏中更改地图。唯一的问题是,我可以通过加载新地图来更改地图,但是出于某种原因,libgdx仍然记得以前地图中的box2d hitboxs。我在第一级完成后调用方法更改映射。不过,我没有收到任何错误 我尝试了多种方法,例如dispose和尝试在类的不同部分创建新映射 public void ChangeMap(){ map.dispose(); map = new TmxMapLoader().load("A

我正在为我的计算机科学课上的一个FSE项目制作一个rpg游戏,我需要在游戏中更改地图。唯一的问题是,我可以通过加载新地图来更改地图,但是出于某种原因,libgdx仍然记得以前地图中的box2d hitboxs。我在第一级完成后调用方法更改映射。不过,我没有收到任何错误

我尝试了多种方法,例如dispose和尝试在类的不同部分创建新映射

 public void ChangeMap(){
    map.dispose();
    map = new TmxMapLoader().load("Assets/Maps/World map1.tmx"); //load the new map
    renderer.setMap(map);
    worldcreator = new WorldCreator(world, map);


}

谢谢,我找到了答案,通过将所有实体添加到ArrayList中,我可以使用world.distroyBody删除它们,这实际上起了作用

我不确定是否正确理解您的问题,但您是说您仍然可以在屏幕上看到旧地图?(或新旧地图的混合?)您可能希望将渲染/绘制地图的部分添加到问题中。如果调用map.dispose或更改地图,则不会删除box2d实体。您必须使用
world.destroyBody(Body Body)