用cocos2d开发windows游戏.需要处理按键消息,cocos2d 源代码目录的CCEGLView.h类中提供了一个接口
void setAccelerometerKeyHook( LPFN_ACCELEROMETER_KEYHOOK lpfnAccelerometerKeyHook );
其中LPFN_ACCELEROMETER_KEYHOOK 为函数指针.提供一个这样的函数就可以了
typedef void (*LPFN_ACCELEROMETER_KEYHOOK)( UINT message,WPARAM wParam, LPARAM lParam ); //需要提供的函数类型
使用方法:
CCDirector::sharedDirector()->getOpenGLView()->setAccelerometerKeyHook(&keyboardHook);
其中keyboardHook 为函数指针,定义如下
static void keyboardHook(UINT message,WPARAM wParam, LPARAM lParam);
再此函数中处理windows事件消息即可
以上只处理了按键消息,cocos并没有把鼠标移动事件添加进去,需要使用鼠标移动事件,可以如下添加:
在 此函数中 LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
中的 case WM_MOUSEMOVE: 下面添加
if ( m_lpfnAccelerometerKeyHook!=NULL )
{
(*m_lpfnAccelerometerKeyHook)( message,wParam,lParam );
}
以上是修改cocos源代码,需要重新编译,把新编译的dll和lib文件拷贝到自己项目相应的debug或者release目录下 作编译
使用版本cocos2d-x-2.2.3