2009-02-05 70 views

回答

2

DirectInput(如果这是您的意思,由directX输入)已被弃用。我个人认为,足以处理发送到主窗口的WndProc的消息。请参阅WMINPUTWMKEYDOWNWMKEYUP

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

0

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

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

  • XNA(WINDOWS +的Xbox 360)
  • 的DirectX(Windows)中
  • 闪存(跨平台)
  • 的Silverlight(应该是跨平台的)

各种综合游戏引擎:

  • 扭矩
  • 黑暗GDK
  • ...

跨平台库

  • 快板
  • LWJGL
  • ...

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

-1

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

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

0

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

如果您正在考虑鼠标输入,请不要使用DirectInput,除非您打算应用非常特定的鼠标弹道学。DirectInput鼠标移动没有应用鼠标的Ballisitics(通过鼠标控制面板设置),对于大多数用户来说会感觉很尴尬。

1

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