我想在andengine中创建一个屏幕暂停按钮
我现在做的是添加一个精灵,当我触摸它时,我做engine.stop(),这个问题,是引擎在我恢复游戏之前不会处理更多的触摸事件(现在我使用了菜单按钮),有没有办法实现它?
谢谢!
答案 0 :(得分:4)
看看AndEngine的例子,有一个项目显示AndEngine中菜单的使用,除了停止引擎之外,你会发现一种更好的方法来实现菜单。祝你好运!
答案 1 :(得分:4)
我发现最好的方法是创建一个场景,当暂停时,设置以这种方式覆盖onManagedUpdate
@Override
onManagedUpdate(float pSecondsElapsed){
if(mPaused) super.onManagedUpdate(0);
else super.onManagedUpdate(pSecondsElapsed);
}
这样一切都很完美,你可以在游戏层上进行,并像往常一样更新菜单层,
答案 2 :(得分:2)
你可以很容易地在屏幕暂停按钮上做。你需要做的是,在屏幕上的任何地方创建一个暂停按钮,触摸该按钮,在原始暂停按钮上显示带有播放按钮的MenuScene。如果您从PauseMenu示例中注释掉.buildAnimations()代码,则可以对MenuItem使用.setPosition()。
为了展示这个想法,我做了一个简单的活动来展示它的可能性。看一看,亲自尝试。
链接:https://github.com/reittes/On-Screen-Pause-Button
好运
答案 3 :(得分:1)
我要做的是在你的文件中添加一个“暂停”布尔值,然后让按钮将其设置为true,然后用if (!pause) {...}
块包含你的引擎更新程序,使其在暂停时停止更新。不是最优雅的解决方案,但在我的游戏中工作,并且在取消暂停时没有导致性能问题。
答案 4 :(得分:1)
Psedu代码
@Override
public boolean onKeyDown(final int pKeyCode, final KeyEvent pEvent) {
if (pKeyCode == KeyEvent.KEYCODE_MENU && pEvent.getAction() == KeyEvent.ACTION_DOWN) {
if (this.mEngine.isRunning()) {
gSceneGlobal.setChildScene(this.mGamePauseScene, false, true, true);
this.mEngine.stop();
} else {
gSceneGlobal.clearChildScene();
this.mEngine.start();
}
return true;
} else {
return super.onKeyDown(pKeyCode, pEvent);
}
}
答案 5 :(得分:1)
我创建了我的类(MyEngine扩展引擎)并更改了
@Override
public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) {
if(!isRunning()) {
// add your code for engine.stop();
}
}
并在游戏类中创建MyEngine引擎;