所有的设备设置都妥当了以后,就应该获取游戏手柄了。获取游戏手柄使用Acquire()函数。在游戏手柄的使用中,还需要用到一个重要的组成部分——轮循(Poll)。 轮循是因为手柄的驱动程序时序的产生中断,需要我们时序的检测手柄的状态。轮循由函数Poll()来实现。下面实现了类中的轮循: HRESULT Joystick::PollDevice(void) 如果轮循失败,则再次获取设备;如果获取失败,则检测失败类型,重复获取设备。如果错误连续出现30次(实际为31次),则退出程序。DIERR_INPUTLOST表示设备输入丢失,并且下一次调用的时候未获得,需要重新获取。其他类型的错误信息请参考SDK。 再往后你只需要读取游戏手柄状态并把他们存储到你的DIJOYSTATE类型成员变量m_diJs中去了。应用的函数为GetDeviceState(),原型为: HRESULT GetDeviceState( 至此,你的游戏手柄类已经基本完成了,如果你需要什么其他的功能或者需要进行其他的设置,你可以自己去添加和修改。现在你的类已经可以为你的程序工作了,你接下来应该做的就是在你的MFC程序中声明一个类的对象并调用他,然后检测状态并完成相关的输出。 在DirectInputJSDlg.cpp文件中加入自定义类的头文件#include "Joystick.h"。 然后在所有函数的开始声明一个全局变量Joystick joystick。 |
正在阅读:MFC下DirectX DirectInput的实现MFC下DirectX DirectInput的实现
2005-07-27 10:07
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键