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 に答える