我有一个方向盘游戏控制器。现在我想写一个像NFS-17这样的比赛游戏的驱动程序。我知道游戏使用Xinput.I将用C写驱动程序。 我的问题: 1)当我转动方向盘时如何发送消息给游戏。 2)它是否使用SendMessage()。 3)如果使用SendMessage(),如何获取游戏窗口的句柄以及我应该发送哪个wParam和lParam。发送游戏控制器消息到一个比赛游戏使用Xinput
回答
XInput用于xbox360控制器。对于方向盘X轴,您可以使用游戏手柄的两个触发器。 XInput仅仅是一个getter/setter:P它让你了解连接的控制器的状态,并且报告在你的请求中是否连接了某些东西,它不监视或保存任何地方的任何东西,也不发送消息给应用程序有输入焦点。发送消息是您可以构建应用程序的工作。 现在,到你真正需要的东西。您可以编写一个简单的C++应用程序来扫描控制器的状态,但请等待......您没有xbox360控制器:P因此,请先测试您的应用程序如何使用其oem驱动程序响应您的方向盘。如果你不能读取它连接到任何USB端口(检查MSDN的GetInputState()),然后尝试使用Windows通用驱动程序(让它安装任何适合它,它甚至可能感知您的方向盘作为一个Xbox360他们是非常类似于一个点,不同之处在于具有更昂贵车轮的轴和按钮的数量)。 然后,当您实际读取控制器(方向盘)的状态时,使用GetHDC(窗口句柄),其中窗口句柄通过(我不记得肯定)检索FindWindow(窗口的名称/标题)。使用alt-tab检查鼠标悬停在游戏窗口中使用的任何标题。 当您拥有窗口句柄和设备上下文时,您可以通过窗口句柄发送消息给其回调函数WndProc函数,甚至通过设备上下文显示文本/绘制图像/形状。这些消息应该是相应的虚拟键代码(例如向上箭头的VK_UP ...查看它),如果没有可用的轮子,这些代码将被推入键盘。诀窍是模拟每个车轮旋转角度的PWM。只需发送一个交替推/放VK_LEFT钥匙代码的高频消息,让车轮高度转向左侧,并且转向锁只需发送一条KEY_DOWN消息,直至取消转向锁,然后发出KEY_UP消息,然后是相应的再次发生变化的频率。对于轮子的低度,在按键/释放按键之间做出更大的暂停。 制作驱动程序的好处是您可以根据自己的喜好调整灵敏度,按钮相关性,死区。
另一方面,已经有这样的模拟器,然后你可以使用一个USB通信API(从USB端口读取/写入数据,没有什么奇怪的东西:)用6 + 1 transmision构建自己的方向盘。 ),微控制器(PIC,atmega,nxp等,无论哪种产品更便宜,硬件USB准备就绪或加上USB控制器),X,Y等轴的可变电阻以及驱动系统的一些部件。祝你好运,并在YouTube上发布:P!
P.S.地狱现在已经太晚了,但是,嘿......我觉得我需要写一些我从未做过的曼波 - 詹姆,但是如果我不是那么懒惰的话,那就行得通了。 :)
更新:xInput可能工作,如果兼容(可能是高端车轮和快乐),但directx也知道方向盘,所有这些。对我而言,这是唯一的解决方案。微软表示XInput和directX都应该被用作XINput提供音频和更多东西来兼容产品。 该algorythm是健全的,虽然开放许多实现。我为GTA SA成功实现了它,因为专用工具不支持我的版本。现在我的踏板上有了Acc和Brake,最后:)我使用了一个定时器来达到一定的频率(自己选择的,经验丰富的东西),并将脉冲宽度从0s调整到了全周期(轻触踏板并持续将踏板用于金属)。每发送一个脉冲,我都会发送两条消息:在脉冲开始时按下W/S键,并在计算出的脉冲宽度达到其最终值时按下W/S键。脉冲宽度的公式是总宽度的百分比,相同的百分比,或者通过灵敏度设置进行修改,例如踏板从最大行程距离行进(DirectInput报告[-1000,1000]的整数[我认为]。[-fullbrake ,fullacceleration])。
- 1. 演示游戏赛车游戏crashs(GamerServicesNotAvailableException)
- 2. 更改游戏中的游戏控制
- 3. 使用Python发送聊天消息到局域网游戏
- 4. 游戏控制器的WinAPI
- 5. 编程游戏控制器
- 6. Visual Studio游戏控制器
- 7. 欺骗游戏控制器
- 8. AS3赛车游戏?
- 9. 发送无需使用游戏中心的游戏邀请
- 10. Playn比游戏
- 11. 如何编写游戏控制器游戏杆?
- 12. 游戏场景到视图控制器
- 13. javascript内存/比赛2游戏
- 14. 在比赛游戏中加电
- 15. 比赛三益智游戏算法
- 16. 3D比赛游戏碰撞检测
- 17. 存储一个Facebook用户的游戏数据游戏制作
- 18. 开发一款不使用游戏引擎的简单游戏?
- 19. 统一谷歌玩游戏实时消息不发送
- 20. 发送iOS游戏信号
- 21. 井字游戏java绘制游戏
- 22. 回合制游戏的游戏循环
- 23. 使用游戏工具包发送图像到另一个iphone
- 24. RTS HTML5游戏多人游戏 - 开始node.js服务器游戏
- 25. iPhone赛车游戏中cocos3d
- 26. 开源cocos2d赛车游戏
- 27. 游戏循环控制
- 28. iphone游戏控制帮助
- 29. 安卓游戏控制
- 30. iPhone平台游戏。控制?