【问题标题】:C#/Monogame: shift keys blocked by arrow keys?C#/Monogame:Shift 键被箭头键挡住了?
【发布时间】:2014-12-14 10:39:45
【问题描述】:

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

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

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

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

输出总是一样的。当我只按一个 shift 键或先按一个(并按住)时,我得到

LeftShift
RightShift

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

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

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

感谢任何帮助!提前非常感谢!

【问题讨论】:

    标签: c# macos keyboard xamarin monogame


    【解决方案1】:

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

    尝试在 MonoGame 中找到将 OS 键事件转换为 XNA 键事件的代码。这很可能是问题所在。

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

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多