Directx 在游戏中处理鼠标和键盘输入的不同选项

Directx 在游戏中处理鼠标和键盘输入的不同选项,directx,Directx,我最近进入了DirectX,并随之进入了游戏编程领域。我已经开始充实我的程序基础,现在我想开始处理输入。我现在的方法是在我的主循环中调用一个函数,使用GetDeviceState(简而言之)和它们各自的参数查询鼠标和键盘;然而,在深入阅读了DirectInput之后,我看到很多人说DirectInput已经不再推荐使用了。微软似乎也同意 我正在寻找其他方法来实现这一点,同时讨论它们的优缺点(不需要,但欢迎。我可以研究)您可以使用win32/windows API gamedev的人似乎同意这一点

我最近进入了DirectX,并随之进入了游戏编程领域。我已经开始充实我的程序基础,现在我想开始处理输入。我现在的方法是在我的主循环中调用一个函数,使用GetDeviceState(简而言之)和它们各自的参数查询鼠标和键盘;然而,在深入阅读了DirectInput之后,我看到很多人说DirectInput已经不再推荐使用了。微软似乎也同意


我正在寻找其他方法来实现这一点,同时讨论它们的优缺点(不需要,但欢迎。我可以研究)

您可以使用win32/windows API


gamedev的人似乎同意这一点:

您可以使用win32/windows API


gamedev的人似乎同意这一点:

对于键盘,我通常使用GetAsyncKeyState();。它表示在执行此功能时是否按下了键


但对于鼠标来说,我认为最好的解决方案是使用DirectInput。因为windows监视它的位置,所以您不必这样做。

对于键盘,我通常使用GetAsyncKeyState();。它表示在执行此功能时是否按下了键


但对于鼠标来说,我认为最好的解决方案是使用DirectInput。因为windows监视它的位置,您不必这样做。

只需使用GetMessage或PeekMessage,请参阅
例如。

只需使用GetMessage或PeekMessage,请参阅
例如。

这几天建议使用。

这几天建议使用。

坏主意,除非你正在使用操纵杆。这样的话,你应该制作大量的个人代码,以照顾到你的用户可能使用的每种可能的文化(相对地配置他们的键盘输入)或配置(反转鼠标按钮配置、双击速度等)。。。正如其他人所说,将其留给windows消息通常是一个更好的主意。据我所知,原始输入建议用于普通windows消息不支持的设备(触摸板、操纵杆、麦克风等),我想最终由用户决定。当然,在以前使用DirectInput的任何地方,现在都应该使用原始输入。就我个人而言,我总是发现将键盘视为一组未知按钮比知道用户是按“a”键还是按“Z”键要有用得多……这是个坏主意,除非你使用的是操纵杆。这样的话,你应该制作大量的个人代码,以照顾到你的用户可能使用的每种可能的文化(相对地配置他们的键盘输入)或配置(反转鼠标按钮配置、双击速度等)。。。正如其他人所说,将其留给windows消息通常是一个更好的主意。据我所知,原始输入建议用于普通windows消息不支持的设备(触摸板、操纵杆、麦克风等),我想最终由用户决定。当然,在以前使用DirectInput的任何地方,现在都应该使用原始输入。就我个人而言,我总是发现将键盘视为一组未知按钮比知道用户是按“a”键还是按“Z”键要有用得多……啊,是的,我喜欢这种外观。如果工作完美的话,我会马上开始,我有很多乐趣编码这个啊是的,我喜欢这个的外观。如果工作完美,我会马上开始,我有很多乐趣编码这个