【问题标题】:GameWindow in Monogame Cross Platform with OpenTK / Input带有 OpenTK / Input 的 Monogame 跨平台中的 GameWindow
【发布时间】:2016-09-21 09:28:46
【问题描述】:

我目前正在使用 Monogame 开发我的游戏,它是一个跨平台项目(我希望它可以在 Windows、Linux 和 Mac 上运行)。我在获取输入时遇到了问题。 我希望有一个事件在按下 KEY 并给我钥匙时被触发。输入 CHAR 时的另一个事件。 我在做什么。 我正在使用名为 engine 的主类中的 Microsoft.Xna.Framework GameWindow(monogame 附带的类。)文本输入:

    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 中的跨平台项目随 OpenTK 一起提供。 提前致谢。抱歉问了这么长的问题。

【问题讨论】:

    标签: c# input xna monogame


    【解决方案1】:

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

    在使用 MonoGame 时,您不应该窥视 OpenTK。作为一个跨平台框架,MonoGame 旨在将这些库抽象出来。例如,即将推出的 3.6 版本将使用 SDL 而不是过时的 OpenTK。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多