2011-10-04 32 views
1

我正在用silverlight開發我的第一款遊戲。這就像2D迷宮,用戶在畫布上的移動是基於UserControl_KeyDown事件。我還沒有任何gameloop。但現在我有點困難 - 我需要限制UserControl_KeyDown事件的頻率或某事,因爲我需要迷宮中的某些對象比玩家能夠更快地移動。我想我可以使用gameloop莫名其妙,但我真的不知道如何和谷歌沒有幫助..我希望你能告訴我如何做到這一點,我真的很感激這一點。如何限制KeyDown動作頻率

回答

1

您可以節省您最後一次執行命令的時間,並且只有在現在與保存的時間之間的TimeSpan大於一定的時間時才執行它。

private DateTime _LastExecution = DateTime.MinValue; 

public void UserControl_KeyDown(object sender, EventArgs ea) { 
    if ((DateTime.Now - _LastExecution).TotalMilliSeconds > 500) { 
     /* do you stuff */ 
     _LastExecution = DateTime.Now; 
    } 
} 
+0

Sascha,感謝您的回覆,聽起來真的很聰明,我會試試這個。 – Gabbo

+0

它對我很好。謝謝 – Gabbo

+0

然後,也許你可以接受的答案;) – Sascha