2014-02-28 216 views
4

我正在为使用游戏引擎的Android开发游戏。我想在游戏屏幕上有一个暂停和恢复按钮。如何暂停和恢复andengine游戏?

我以MenuScene和暂停游戏,我使用

engine.stop(); 

但是,一旦它停止发动机,它不会触发任何触摸或点击事件实现这一点。

如何重新启动引擎?

或者什么可以实现相同的最佳方式?

+0

请检查我answer.It可以帮助你 – Rama

回答

4

好的,虽然我不是亲在andengine,我可以给一些建议。首先,停止引擎并不是您正在寻找的暂停解决方案。所以,而不是那个,你必须做manuelly,我的意思是;

  • 停止不动的东西: 要做到这一点,你可以,如果你使用的是一些物理使用yourPhysicsWorld.unregisterPhysicsConnector()功能。 或者你可以设置速度

  • 停止更新系统的所有移动的东西零(setVelocity(0,0)): 只要你可以用yourScene.unregisterUpdateHandler()

  • 保存重要的数据做到这一点:如果你有一些重要的数据 ,您必须先保存它们。我不会提供详细信息,但如果您不知道如何存储数据,则可以在Google上查找SQLiteSharePreferences

提醒的是,如果你想回到游戏中,你必须更新处理程序和物理连接器注册回现场。

0

暂停游戏:

GameScene.gameScene.setChildScene(pauseScreen, false, true, true); 

这些行添加到您的游戏Screen.So你的游戏将进入暂停

要恢复比赛:

GameScene.gameScene.clearChildScene(); 
2

我找到即暂停游戏最简单的方法是做如下:

mScene.setIgnoreUpdate(true); 
mScene.setChildScene(mPauseScene, false, true, true); 

mScene是您的主要游戏场景,mPauseScene是暂停场景。

然后,要恢复比赛,你这样做:

mScene.clearChildScene(); 
mScene.setIgnoreUpdate(false); 

由于问题提到一个暂停/恢复按钮,我强烈建议this tutorial。它以一种非常直接的方式显示了如何实现这样一个按钮。我在我的游戏中使用过它,它效果很好。

+0

你的答案的作品。但我有问题,如果我有其他childScene附加到我目前的GameScene。 mScene.clearChildScene();也会清除那些childScenes。什么可以解决这个问题。 – Crawler