我目前正在XNA/C#中開發。 當用戶按下一個鍵(Keys.Right
)時,我需要移動一個對象。 我想這是當用戶按下 如何在密鑰保存一段時間後重復操作?
- 。
我已經實現了第一個:
_kbOld = _kbNew;
_kbNew = _kb.GetState();
if(_kbNew.IsKeyDown(Keys.Right) &&
_kbOld.IsKeyUp(Keys.Right))
{
//Do something
}
我怎麼會做其他動作? 我有以下觀點:
一個
Queue<KeyboardState>
,保持最後KeyboardState
小號保存時間的關鍵是最後按下,當它被釋放(
GameTime
)
它應該像Windows中的文本輸入一樣工作:當您持有一封信時,它會在一段時間後重復。
我應該使用哪種方式?你有其他想法嗎?
在此先感謝!
我建議你使用Windows鉤子獲得實際的按鍵,繞過XNA的輸入maganement。 – user1306322 2013-02-12 01:20:50
你能告訴我爲什麼嗎? – pascalhein 2013-02-12 08:47:24
因爲它不但解決了這個問題,而且還會捕獲任何鍵盤佈局(不同語言)的符號。 – user1306322 2013-02-12 12:03:42