2016-09-21 86 views
0

我目前正在與Monogame一起開發我的遊戲,它是一個跨平臺項目(我希望它在Windows,Linux和Mac上運行)。我遇到了問題獲取輸入。 我想要一個事件,當一個KEY被按下時給予鑰匙。另一個事件是當輸入CHAR時。 我在做什麼atm。 我使用Microsoft.Xna.Framework GameWindow從主類中調用引擎(附帶monogame類)文本輸入:Monogame中的GameWindow與OpenTK的跨平臺/輸入

public static void Initialize(GameWindow window) 
    { 
     window.TextInput += CharEnteredEvent; 
    } 

我訂閱事件並輸入一個字符時,此事件是但是當按下ctrl或其他鍵時,它並不像預期的那樣。 來自Microsoft.Xna.Framework的GameWindow只有這個,但來自OpenTK的GameWindow有更多的事件,如TextInput,KeyDown,KeyUp等。如果我使用OpenTK Gamewindow,我擁有我需要的一切,但是Monogame跨平臺使用Microsoft.Xna.Framework GameWindow。任何想法如何我可以使用OpenTK遊戲窗口而不是monogame窗口。順帶說一句,monogame中的跨平臺項目與OpenTK一起提供。 在此先感謝。對於長期的問題抱歉。

回答

0

您應該使用Keyboard.GetState() API輪詢鍵盤狀態。 TextInput事件僅用於文本輸入 - 它不提供其他密鑰。

使用MonoGame時,您不應該窺探OpenTK。作爲一個跨平臺的框架,MonoGame旨在將這些庫抽象出來。例如,即將推出的3.6版本將使用SDL而不是過時的OpenTK。