如果做过游戏开发的朋友应该都知道,手柄的按键事件是非常敏感的,如果不对其进行延时处理,可能会让玩家觉得很难掌握和控制游戏,也就是所谓的没有“手感”,由于自己在开发项目中要用到这样的处理,所以写了延时功能的代码,仓促编写,可能有很多地方不合理,望大家批评指正,代码如下(vc6):
#include <Dinput.h> #include <mmsystem.h> #pragma comment(lib,"Winmm.lib ") //时间差 class DELTATIME { private: DWORD tmpTime; public: DWORD DeltaTimes; DELTATIME() { DeltaTimes=0; tmpTime=timeGetTime(); } void ClearTime() { DeltaTimes=0; tmpTime=timeGetTime(); } DWORD getDtTime() { DeltaTimes=timeGetTime()-tmpTime; return DeltaTimes; } }; //调节手柄灵敏度 class BTNDELTA { private: long btnCount; long btnMaxPressCount;//默认为连续触发10次算一次 public: BTNDELTA() { btnCount=0; btnMaxPressCount=6; } void SetMaxCount(long nMax) { btnMaxPressCount=nMax; btnCount=0; } bool isGotOnePres