2012-05-02 9 views
0

確率機械シミュレーションを行う。シミュレーションを一時停止する方法は?

ボタンを押したときにシミュレーションを一時停止する必要があります。

現時点で私が持っているのは、「P」を押すと、私のシミュレーションは完全にうまく一時停止します。しかし、一時停止キーを押すと、シミュレーションが中止されますが、一時停止していた状態から一時停止しません。

ボールが中盤のときに一時停止すると、一時停止した後、ボールが上から再生成され、その間ボールが下まで移動したことがわかります。

私はこれを達成するために使用されるアルゴリズムがある -

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

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

答えて

1

あなたが更新(内部の「シミュレーション」を実行するためにリアルタイム)を使用している場合は、アン一時停止し、実時間が経過している場合でも、これは一時停止していたため、「ボール」が移動したためです。最後の一時停止していないフレームからの経過時間をball.Update()内で使用している時間に関連付ける必要があります。

もちろん、私がコードで見ることのできないものが完全にない限り、

関連する問題