3

andengineで画面上の一時停止ボタンを作成したい

私が今していることは、スプライトを追加することです。それに触れると、engine.stop()を実行します。これに関する問題は、ゲームを再開するまで、エンジンがそれ以上のタッチイベントを処理しないことです(現在はメニューボタンを使用していますこれ)、それを達成する方法はありますか?

ありがとう!

4

6 に答える 6

4

AndEngineの例を見てください。AndEngineでのメニューの使用法を示すプロジェクトがあります。エンジンを停止する以外に、メニューを実装するためのより良い方法を見つけることができます。幸運を!

于 2011-05-01T23:22:27.683 に答える
4

シーンを作成するのが最善の方法であり、一時停止したときに、この方法でonManagedUpdateをオーバーライドするように設定します。

@Override
onManagedUpdate(float pSecondsElapsed){
 if(mPaused) super.onManagedUpdate(0);
 else        super.onManagedUpdate(pSecondsElapsed);
}

このようにして、すべてが完全に機能し、ゲームレイヤーでそれを実行して、メニューレイヤーを通常どおりに更新することができます。

于 2012-07-12T08:59:36.663 に答える
2

画面の一時停止ボタンで簡単に行うことができます。あなたがする必要があるのは、画面上のどこかに一時停止ボタンを作成し、そのボタンに触れると、元の一時停止ボタンの上に再生ボタン付きのMenuSceneを表示することです。PauseMenuの例から.buildAnimations()コードをコメントアウトする場合は、MenuItemに.setPosition()を使用できます。

アイデアを示すために、その可能性を示す簡単なアクティビティを作成しました。見て、自分で試してみてください。

リンク:https ://github.com/reittes/On-Screen-Pause-Button

幸運を

于 2012-02-21T15:50:11.400 に答える
1

私が行うことは、ファイルに「一時停止」ブール値を追加し、ボタンでそれをtrueに設定してから、エンジンアップデーターをif (!pause) {...}ブロックで囲み、一時停止したときに更新を停止するようにします。最もエレガントなソリューションではありませんが、私のゲームで機能し、一時停止を解除してもパフォーマンスの問題は発生しませんでした。

于 2011-06-11T21:36:58.537 に答える
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);
    }
}
于 2011-07-13T13:19:28.273 に答える
1

クラスを作成し(MyEngine extends Engine)、変更しました

@Override
public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) {                      
if(!isRunning()) {
  // add your code for engine.stop();
  }
}

ゲームクラスでMyEngineエンジンを作成します。

于 2012-02-04T21:05:03.857 に答える