C#/Monogame:被箭头键阻止的移位键

本文关键字:Monogame | 更新日期: 2023-09-27 18:34:18

我经常在这里找到有用的信息,现在是时候自己创建一个帐户并感谢这个社区经常帮助我了!

我目前正在使用 Xamarin 5.5.4 在 Mac OSX 10.9.5 的 Monogame 3.2 中编写游戏,并遇到了一个我以前从未见过的奇怪问题:当我按下其中一个箭头键时,似乎左键和右键总是被认为是未按下的,即使我按下它们。

我在游戏循环中用这些代码行检查了这一点:

        foreach (Keys key in Keyboard.GetState().GetPressedKeys()) {
            Console.WriteLine (key.ToString ());
        }

输出始终相同。当我只按其中一个 shift 键或先按(并按住(时,我得到

LeftShift
RightShift

加上最终的箭头键(如果先按住 shift(。但是,当我先按其中一个箭头键,然后在其中一个箭头键按下时按 shift 键时,这两个键不会出现。

这显然是一个问题,因为我的游戏角色现在在按下 shift 时无法运行(至少当先按下箭头键并按住时(。我仔细检查了 Z 等其他键是否也被阻止,但似乎箭头键只阻止移位(但到目前为止我还没有检查每个键(。

有谁知道为什么会这样?我检查了粘滞键是否在Mac OSX中激活,但没有。 可悲的是,到目前为止,我在互联网上找不到任何东西。

任何帮助不胜感激!提前非常感谢!

C#/Monogame:被箭头键阻止的移位键

我认为MonoGame正在做一些特殊的事情来让某些键在Windows上工作,可能是一些相同的修复需要在其他平台上完成。

尝试在 MonoGame 中找到从操作系统密钥事件转换为 XNA 密钥事件的代码。问题很可能出在哪里。

还可以尝试运行最新的开发分支,以确保它不是同时修复的错误。