嘿,所以我正在暂停我的游戏。我几乎可以正常工作,但是有几个我似乎无法理解的故障。
基本上我有一些代码(如下)暂停帧速率,然后恢复帧速率。两个代码片段单独正确工作,但是当放在一起时,如果我按“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");
}
}