DirectXinput是游戏中键盘处理的正确select吗?

在游戏等程序中处理键盘input的首选方法是什么? directXinput是最简单的select吗? 还有什么其他的select?

DirectInput(如果这是你的意思是由directX输入)已被弃用。 我个人认为,处理发送到主窗口的WndProc的消息就足够了。 请参阅WMINPUT或WMKEYDOWN和WMKEYUP

编辑:我假设你正在使用Directx制作游戏。 如果你不是,那真的取决于你如何让你的游戏选择输入。 如果您正在使用跨平台的现有库,它将有一种处理内置输入的方法。

所有的DirectInput都是为键盘输入而做的,就是创建一个线程并观察WM_ *消息并添加额外线程的开销。 即使微软说你应该只是WM_ *消息。 我看到一些EPIC失败 ,但不是在Windows消息队列的一部分。

它主要取决于你打算用于你的游戏的框架/操作系统。

选项太多,无法列在这里,但包括:

  • XNA(Windows + XBox 360)
  • DirectX(Windows)
  • Flash(跨平台)
  • Silverlight(应该是跨平台的)

各种综合游戏引擎:

  • 扭力
  • 黑暗的gdk

跨平台库

  • 快板
  • LWJGL

坦率地说,这是非常难以处理的投入将是你最大的问题,所以选择一个适合你的需求(特别是在grahic能力/复杂性方面)的解决方案,并选择你从那里处理输入的方式。

通常,您可以选择最适合您的窗口系统的输入处理方法。 如果您使用的是GLUT / SDL / SFML或任何其他窗口工具包,则会从中获得您的输入。 否则,如果你自己动手,那么在使用操作系统输入消息或者DirectInput之间,两者都可以游泳。

如果你正在考虑鼠标输入,不要使用DirectInput,除非你有特定的鼠标弹道你打算应用。 DirectInput鼠标移动没有用户的鼠标ballisitics应用(通过鼠标控制面板设置),并会感到非常尴尬的大多数用户。

DirectInput没有错。 运行良好,并通过一个呃…“友好”界面直接访问硬件:)如果您想在游戏中获得真正的响应,轮询硬件是唯一的方法。

依靠Windows消息泵和处理Windows消息,imho是EPIC FAIL