基于OpenTK / Input的单游戏跨平台游戏窗口

本文关键字:游戏 跨平台 窗口 单游戏 OpenTK Input 基于 | 更新日期: 2023-09-27 18:07:58

我目前正在用Monogame制作一款游戏,这是一个跨平台项目(我希望它能在Windows, Linux和Mac上运行)。我在获取输入时遇到了问题。我想有一个事件,是提高时按下一个键,并给我的关键。另一个事件是输入CHAR。我正在做的事情。我使用的是来自主类engine的Microsoft.Xna.Framework GameWindow。文本输入:

    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游戏窗口,而不是一夫一妻制。顺便说一句,一夫一妻制的跨平台项目都是OpenTK自带的。提前感谢。不好意思,这个问题太长了

基于OpenTK / Input的单游戏跨平台游戏窗口

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

你不应该偷看OpenTK时使用一夫一妻制。作为一个跨平台框架,一夫一妻制意味着抽象掉这些库。例如,即将到来的3.6版本将使用SDL而不是过时的OpenTK。