0

こんにちは、ゲームの一時停止に取り組んでいます。ほぼ動作していますが、理解できない誤動作がいくつかあります。

基本的に、フレーム レートを一時停止してからフレーム レートを再開するコード (以下) があります。コードの両方のスニペットは個別に正しく機能しますが、まとめて「p」を押すと、両方のコードのスニペットが即座に循環し、2 番目のコードのみが効果的に実行されます (トレースを挿入すると、両方のコードが実行されていることがわかります) "p" を 1 回押します。)

ですから、私の最初の主な質問は、どうすればこれを機能させることができるかということです。「p」を押してゲームを一時停止したときにコードの 1 つのスニペットを実行し、その後、「p」をもう一度押して他のスニペットを実行できるようにしたいだけです。

2 番目の質問は、フレーム レートをトレースすると、0 ではなく 0.01 と表示されるのはなぜですか? この種の興味深いものを見つけました....とにかく、ここにコードがあります。さらにコンテキストが必要な場合は教えてください。ただし、必要ないと思います。

        if (stage.frameRate == 30)
        {
            if (keyboardEvent.keyCode == Keyboard.P)
            {
                dispatchEvent(new NavigationEvent(NavigationEvent.PAUSEGAME));
                stage.frameRate = 0;
                checkIfPaused = true;
                trace("pause game");
                trace(stage.frameRate);
            }
        }
        if (stage.frameRate == 0.01)
        {
            if (keyboardEvent.keyCode == Keyboard.P)
            {
                stage.frameRate = 30;
                dispatchEvent(new NavigationEvent(NavigationEvent.RESUMEGAME));
                checkIfPaused = false;
                trace("resume game");
            }
        }
4

1 に答える 1

0

気にしないで、私はそれを理解しました。2 番目のスニペットの if の代わりに else if を追加したところ、動作するようになりました =) が、フレーム レートが 0.01 であるという私の質問に適切な方法で誰かが答えることができれば、答えを提供します。

于 2013-07-28T16:18:38.377 に答える