我想創建andengineAndengine屏幕上的暫停按鈕
屏幕上的暫停鍵我現在要做的是與此增加一個精靈,當我觸摸它,我做engine.stop(),問題是,引擎不會處理更多的觸發事件,直到我恢復遊戲(現在我使用菜單按鈕),那麼是否有辦法實現它?
謝謝!
我想創建andengineAndengine屏幕上的暫停按鈕
屏幕上的暫停鍵我現在要做的是與此增加一個精靈,當我觸摸它,我做engine.stop(),問題是,引擎不會處理更多的觸發事件,直到我恢復遊戲(現在我使用菜單按鈕),那麼是否有辦法實現它?
謝謝!
我發現這樣做是創建一個場景,和暫停時,設置覆蓋onManagedUpdate這種方式的最佳途徑
@Override
onManagedUpdate(float pSecondsElapsed){
if(mPaused) super.onManagedUpdate(0);
else super.onManagedUpdate(pSecondsElapsed);
}
這樣一切正常完美的,你可以在遊戲層做到這一點,並像往常一樣更新菜單層,
看看AndEngine的例子,有一個項目顯示了在AndEngine中使用菜單,你會發現一個更好的方式來實現一個菜單,而不是停止引擎。祝你好運!
我會做的是在文件中添加一個「paused」布爾值,然後讓按鈕將其設置爲true,然後使用if (!pause) {...}
塊包含引擎更新程序,以使其在暫停時停止更新。不是最優雅的解決方案,但在我的遊戲中工作,導致沒有暫停的性能問題。
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);
}
}
創建我的類(MyEngine擴展引擎),改變
@Override
public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) {
if(!isRunning()) {
// add your code for engine.stop();
}
}
,並創建遊戲類MyEngine引擎;
你可以很容易地在屏幕上暫停按鈕。你需要做的是,在屏幕上的任何地方創建一個暫停按鈕,觸摸該按鈕,在原始暫停按鈕上顯示帶有播放按鈕的MenuScene按鈕。如果您註釋掉PauseMenu示例中的.buildAnimations()代碼,則可以使用MenuItem的.setPosition()。
爲了演示這個想法,我做了一個簡單的活動來展示它的可能性。看一看,然後嘗試一下。
鏈接:https://github.com/reittes/On-Screen-Pause-Button
好運
所以,你的意思是我需要創建一個menuscene ?,然後添加暫停b utton到它?原因我想在遊戲中使用我的暫停按鈕 – 2011-05-02 16:55:02
實現菜單場景,向您的遊戲添加一個按鈕,並在該按鈕上添加一個點擊偵聽器以在場景之間切換。檢查AndEngineExamples中的MenuExample項目,菜單場景附加在按下的菜單鍵上。只需將此代碼複製到您的按鈕的onClickListener。祝你好運! – Egor 2011-05-03 10:33:05