带有 OpenTK / 输入的 Monogame 跨平台中的 GameWindow

GameWindow in Monogame Cross Platform with OpenTK / Input

我目前正在使用 Monogame 开发我的一款游戏,它是一个跨平台项目(我希望它在 Windows、Linux 和 [=22] 上 运行 =]).我在获取输入时遇到问题。 我想要一个在按下 KEY 时触发的事件并给我钥匙。输入 CHAR 时的另一个事件。 我在做什么 我正在使用主 class 引擎中的 Microsoft.Xna.Framework GameWindow(monogame 附带的 class。)文本输入:

    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 游戏窗口。关于如何使用 OpenTK Game window 而不是 monogame 的任何想法。顺便说一句,monogame 中的跨平台项目带有 OpenTK。 提前致谢。抱歉问题太长了。

您应该使用 Keyboard.GetState() API 轮询键盘状态。 TextInput 事件仅用于文本输入 - 它不提供其他键。

您不应该在使用 MonoGame 时窥视 OpenTK。作为跨平台框架,MonoGame 旨在将此类库抽象出来。例如即将到来的3.6版本将使用SDL代替过时的OpenTK