参考:
游戏手柄joystick开发一: http://blog.csdn.net/liyuanbhu/article/details/51714045
游戏手柄joystick开发二:http://blog.csdn.net/liyuanbhu/article/details/54809858
游戏手柄joystick开发QT:http://blog.csdn.net/liyuanbhu/article/details/65936340
游戏手柄joystick开发WINDOWS:http://blog.csdn.net/hillpang/article/details/1874095
本人使用的是thrustmaster公司的hotas warthog套装 飞行操纵杆
先从官网下载驱动,再下载了官方GUI的测试程序方便调试。
控制程序如下图:
先添加脚本,然后运行后调出GUI测试界面:
这个界面已经能很好的观察操纵杆的每一个按键所对应的参数了,方便之后编程和调试。
再根据之前别人写的几个joystick开发来进行就可以了
我有可能会更新持续更新代码部分。。。
1.首先我写了一个小程序来获取操纵杆姿态数据:
#include <stdio.h> #include <windows.h> #include <mmsystem.h> #pragma comment(lib,"Winmm.lib") int main() { UINT inum = joyGetNumDevs(); printf("%d ", inum); while (getchar() != 'q') { UINT uJoyID = 0; LPJOYINFO pji = new joyinfo_tag; joyGetPos(uJoyID, pji); printf("pji->wXpos: %d ", pji->wXpos); printf("pji->wYpos: %d ", pji->wYpos); printf("pji->wZpos: %d ", pji->wZpos); printf("pji->wButtons: %d ", pji->wButtons); } return 0; }
打印结果,随着我改变操纵杆而变化:
并得出一个小结:
//方向杆和油门杆数值范围都是[1,65534] pji->wXpos;//这个是左右方向操纵杆,方向杆中间值是32767,最左是1,最右是65534 pji->wYpos;//这个是前后方向操纵杆,方向杆中间值是32767,最前是1,最后是65534 pji->wZpos;//这个是油门杆,油门最前是1,油门最后是65534 pji->wButtons;//这个返回的是000000。。。共32位的0或1的值。1就代表当前按钮被按下