所以我在许多不同的地方寻找这个问题的答案,但我还没有找到适合我的情况的答案。我正在使用 MonoGame (Microsoft XNA) 开发游戏,并且我想要一个类来处理我的输入。由于 XInput 只能检查特定帧上的某个键是否按下,因此我想创建自己的函数来检查它是否被按下、释放或按住。
这是我的问题:
public static void getKeyPress(Enum key)
{
updated = Keyboard.GetState();
if (updated.IsKeyDown(/* what can i put here to have key be the 'Keys' enum */))
{
}
if (updated.IsKeyDown(Keys.Space))
{
}
}
所以,我的问题是我无法弄清楚如何使用作为函数参数的键 Enum。我试图将其作为 IsKeyDown 函数的参数,该函数包含在 XNA 框架中。IsKeyDown 函数只接受来自框架预构建的 Keys 枚举的内容。第二个 if 语句显示了该函数的正确用法,以及 Keys.Space。我想让 getKeyPress 函数像这样工作:
if (getKeyPress(Keys.Backspace))
{
//backspace was pressed
}
或者,这也可以:
if (getKeyPress(Backspace))
{
//backspace was pressed
}
我完全迷失了,如果有人能帮我解决这个问题,那将不胜感激。
如果我理解正确,您应该能够更改方法签名以指定要传入的类型。在您的情况下,您需要Keys
枚举。
public static void getKeyPress(Keys key)
{
updated = Keyboard.GetState();
if (updated.IsKeyDown(key))
{
}
if (updated.IsKeyDown(Keys.Space))
{
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句