2012-05-02 67 views
0

做一個概率機器模擬。如何暫停模擬?

需要按下按鈕暫停模擬。

目前,我所擁有的是,如果按'P',我的模擬暫停很好。但是當我按下取消暫停鍵時,模擬取消暫停,但不會從暫停狀態中取消暫停。

即,如果我在球停在中間位置時,在取消暫停之後,球從頂部重新生成,告訴我球在此期間已經移動到了底部。

我用來實現這一目標的算法 -

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

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

回答

1

如果您使用實時進行「模擬」內更新(),即使取消暫停,實時已過因爲它已經暫停,因此「球」移動了。您需要將自上次未暫停幀以來的經過時間與您在ball.Update()中使用的時間相關聯。

當然,除此之外,還有其他的東西是我在代碼中看不到的。