0

进行概率机模拟。

需要在按下按钮时暂停模拟。

目前,我所拥有的是,如果我按“P”,我的模拟暂停绝对没问题。但是当我按下 Unpause 键时,模拟会取消暂停,但它不会从暂停状态取消暂停。

即,如果我在球位于中间时暂停机器,在取消暂停后,球从顶部重生,告诉我球在此期间已经移动到底部。

我用来实现这一点的算法是 -

if (UserPress == 'P')
   Pause = !Pause;

if (Pause)
{
    ball.Update;
    ReDraw();
}
4

1 回答 1

1

如果您在 Update() 中使用实时来执行“模拟”,即使在未暂停的情况下,自暂停以来实时已经过去,因此“球”移动了。您需要将自最后一个未暂停帧以来经过的时间与您在 ball.Update() 中使用的时间相关联。

当然,除非我在代码中看不到其他完全发生的事情。

于 2012-05-02T21:20:43.840 回答