在游戏中,难免会有很多场景,如开始-设置-商店-游戏等等界面,将所有这些放在一个scene中是相当不现实的,借助AndEngine可以很方便的在游戏中切换各个场景
mEngine.setScene(scene);
需要注意的是,不可以在处理线程中直接执行语句,可以通过Message Handler来实现
private void ChangeScene(int sceneNumber) {
switch (sceneNumber) {
case GameScene_Num:
GameScene gScene= new GameScene();
gScene.LoadScene();
mGameEngine.setScene(gScene.mGameScene);
Log.v(TAG, "Change to GameScene");
break;
default:
break;
}
}
protected void ChangeSceneMessage(final int sceneNumber){
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
Message msg=new Message();
msg.what=0;
msg.obj=sceneNumber;
mHandler.sendMessage(msg);
}
}).start();
}
private Handler mHandler=new Handler(){
public void handleMessage(Message msg){
switch(msg.what)
{
case 0:
ChangeScene(Integer.parseInt(msg.obj.toString()));
break;
}
};
};