libGDX更改地图

我正在努力改变地图。 基本上,当我的角色碰撞终点线时,它应该改变到下一个地图。

这是像我简单的代码…

A类实现屏幕

@Override public void show() { mapLoader = new TmxMapLoader(); map = mapLoader.load("lvv2.tmx"); renderer = new OrthogonalTiledMapRenderer(map, 1/alienAdvantrue.PPM); gamecam.position.set(gameport.getWorldWidth()/2,gameport.getWorldHeight()/2,0); } 

B类扩展A实现屏幕

 @Override public void show() { mapLoader = new TmxMapLoader(); map = mapLoader.load("lvv1.tmx"); //<--- just change this. renderer = new OrthogonalTiledMapRenderer(map, 1/alienAdvantrue.PPM); gamecam.position.set(gameport.getWorldWidth()/2,gameport.getWorldHeight()/2,0); } 

目前,它不工作…

你能提出一些建议吗?

Solutions Collecting From Web of "libGDX更改地图"

我通常有一个称为init的方法,它启动所有游戏的关卡数据。 此外,我有一个重置方法,负责重置所有的variables准备下一个级别。

有一个init方法允许你重复使用同一个类的多个层次,保持所有的设置在一个单一的方法。

 public class GameScreen{ .. fields.. public GameScreen(){ mapLoader = new TmxMapLoader(); renderer = new OrthogonalTiledMapRenderer(map, 1/alienAdvantrue.PPM); gamecam.position.set(gameport.getWorldWidth()/2,gameport.getWorldHeight()/2,0); init(1); // start at first level } public init(int level){ map = mapLoader.load("lvv"+level+".tmx"); } public reset(){ // reset all the vars that should be reset before the next level map.dispose(); } } 

然后等级完成后,您可以调用init(2)来启动级别2