0

嘿,所以我正在暂停我的游戏。我几乎可以正常工作,但是有几个我似乎无法理解的故障。

基本上我有一些代码(如下)暂停帧速率,然后恢复帧速率。两个代码片段单独正确工作,但是当放在一起时,如果我按“p”,它会立即循环通过两个代码片段,有效地只执行第二个(我输入了跟踪,它表明两个代码都在我执行时按“p”一次。)

所以我的第一个也是主要的问题是如何让它发挥作用?我只想在按下“p”暂停游戏时执行一个代码片段,然后在此之后,能够再次按下“p”并执行另一个片段。

我的第二个问题是......为什么当我跟踪帧速率时它说它是 0.01 而不是 0?发现这种有趣的......无论如何,这是代码。如果您需要更多上下文,请告诉我,但我认为您不会。

        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

没关系,我想通了。我刚刚添加了 else if 而不是 if 用于第二个片段,现在它可以工作了 =),但是如果有人能以一种很好的方式回答我关于帧速率为 0.01 的问题,我会给你答案

于 2013-07-28T16:18:38.377 回答