Andengine onScreen暂停按钮

时间:2011-05-01 16:45:45

标签: android andengine

我想在andengine中创建一个屏幕暂停按钮

我现在做的是添加一个精灵,当我触摸它时,我做engine.stop(),这个问题,是引擎在我恢复游戏之前不会处理更多的触摸事件(现在我使用了菜单按钮),有没有办法实现它?

谢谢!

6 个答案:

答案 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引擎;