1
我寫這需要輸入指向只有一個輸入事件處理程序的XNA應用程序,這是當前鎖定的對象,即遊戲,菜單,控制檯等XNA獨家上鎖輸入處理
是什麼做到這一點的最佳方式?我曾考慮過創建一個IInputReceiver
接口(使用方法如HandleInput
),該接口連接到中央輸入管理器,該中央輸入管理器僅將輸入事件發送到鎖定的輸入接收器。
只是想知道其他人做什麼輸入處理。
我寫這需要輸入指向只有一個輸入事件處理程序的XNA應用程序,這是當前鎖定的對象,即遊戲,菜單,控制檯等XNA獨家上鎖輸入處理
是什麼做到這一點的最佳方式?我曾考慮過創建一個IInputReceiver
接口(使用方法如HandleInput
),該接口連接到中央輸入管理器,該中央輸入管理器僅將輸入事件發送到鎖定的輸入接收器。
只是想知道其他人做什麼輸入處理。
最簡單的方法 - 以及XNA自己處理事物的方式 - 使輸入全局(使用靜態類)。在您的遊戲/菜單/控制檯的Update
功能中,只需查詢輸入狀態即可。
您可能不應該同時在多個這些對象上調用Update
。如果出於某種原因,我不得不在每個讀取輸入狀態時分別使用InputUpdate
函數。
如果你需要「鍵盤上升/下降」處理 - 在XNA中通常是通過存儲最後一個狀態和當前狀態來完成的 - 我發現它也是最容易的全局存儲,並「泵」它在你的Game.Update
功能的開始。
這可能聽起來並不特別奇特 - 但這是遊戲的輸入。它不一定是花哨的!
我真的不明白「可鎖定」是什麼意思 - 但我覺得我應該指出XNA輸入(讀取)必須在主線程上完成。