我一直在努力为自己弄清楚,但是所有在线教程和我能找到的所有东西都不能真正解释我的问题,所以我希望这里有人可以帮助我。
到目前为止,我只使用 C#,主要使用 WPF,如果我想在键盘上按下一个键时引发一个事件,我只需使用该KeyDown
事件。在那里我可以很容易地识别按下的键e.Key
。
现在在 XNA 中,我所看到的一切都是KeyboardState state = Keyboard.GetState();
用来获取键盘状态并不断检查Update()
- 方法,如果例如state.IsKeyDown(Keys.Left);
返回 true 或 false。
我的问题是:这不是真的低效吗?例如,如果我的游戏使用 15 个键进行输入,我将获取键盘状态并检查这 15 个键中的每一个,并且每秒检查 30 次。有什么原因,为什么在 XNA 中使用这种方法似乎如此普遍?我能想到的唯一解释是,确保所有内容都保留在- 方法中Update
,以便明确执行,以免延迟事件导致游戏出现问题。