我正在使用AndEngine。
我有一个场景,我想重复使用我的所有关卡。
唯一会改变的是通过我为加载关卡而创建的方法在场景中加载的对象。
我面临的问题是,在关卡结束时,用户可以选择继续升级到下一级别。我允许用户使用此方法加载下一级别。
this.nextlevel = new Sprite(0,0,150,80,this.nextLevelRegion,this.getVertexBufferObjectManager()){
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
final float pTouchAreaLocalX,
final float pTouchAreaLoca) {
GameScene.detachChildren();
loadLevel(level);
return true;
}
};
loadLevel(int level_number)将int作为参数。我按级别++增加此变量;加载当前级别后。
问题是当点击精灵时它会不断向级别整数添加+1并尝试加载错误的级别..
任何人都知道更好的方法吗?
答案 0 :(得分:1)
这就是我在游戏中所做的: 我创建了一个创建游戏场景的类,这个类有一个创建场景的方法,并根据我调用它时收到的数字加载XML级别。 当我想进入下一级时,我得到当前的级别数(让我们说它的x)并用x + 1作为它的属性调用方法。 你应该注意我依赖这种方法重新创建场景,所以当你这样做时你应该重置每一件事。 这是对方法的调用:
Sprite Next=new Sprite(x-48/factor, y+30/factor, 96/factor, 60/factor,LoadAssets.WinMenuNextTextureRegion){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionUp()){
pEngine.setScene(GamePlayScene.CreateTheGamePlayScene(context,pEngine,camera_width, camera_height,GamePlayScene.LevelNumber+1));
}
return true;
}};
如果你想看看它是如何工作的,这里是我游戏的链接: https://market.android.com/details?id=com.ayham.blowangryshapes 我只在游戏中有一个游戏场景,并根据需要加载等级。