2010-08-29 59 views
1

我寫這需要輸入指向只有一個輸入事件處理程序的XNA應用程序,這是當前鎖定的對象,即遊戲,菜單,控制檯等XNA獨家上鎖輸入處理

是什麼做到這一點的最佳方式?我曾考慮過創建一個IInputReceiver接口(使用方法如HandleInput),該接口連接到中央輸入管理器,該中央輸入管理器僅將輸入事件發送到鎖定的輸入接收器。

只是想知道其他人做什麼輸入處理。

回答

1

最簡單的方法 - 以及XNA自己處理事物的方式 - 使輸入全局(使用靜態類)。在您的遊戲/菜單/控制檯的Update功能中,只需查詢輸入狀態即可。

您可能不應該同時在多個這些對象上調用Update。如果出於某種原因,我不得不在每個讀取輸入狀態時分別使用InputUpdate函數。

如果你需要「鍵盤上升/下降」處理 - 在XNA中通常是通過存儲最後一個狀態和當前狀態來完成的 - 我發現它也是最容易的全局存儲,並「泵」它在你的Game.Update功能的開始。

這可能聽起來並不特別奇特 - 但這是遊戲的輸入。它不一定是花哨的!

我真的不明白「可鎖定」是什麼意思 - 但我覺得我應該指出XNA輸入(讀取)必須在主線程上完成。