您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x总结-win32环境下响应键盘消息

2012-07-22 11:39 330 查看

cocos2d-x总结-win32环境下响应键盘消息

cocos2d-x总结-win32环境下响应键盘消息摘要: cocos2d主要面向的是触摸屏幕设备的,在WINDOWS下的定位感觉多多少少就是相当于一个模拟器,因此并没有太多的PC下重要的键盘支持。然而响应键盘消息对于调试来说可以提供不少方便。下边就通过更改cocos2d-x的源码来添 ...
cocos2d主要面向的是触摸屏幕设备的,在WINDOWS下的定位感觉多多少少就是相当于一个模拟器,因此并没有太多的PC下重要的键盘支持。然而响应键盘消息对于调试来说可以提供不少方便。下边就通过更改cocos2d-x的源码来添加键盘消息响应。

一,打开cocos2dxincludeCCLayer.h

在CCLayer类的public下添加

virtual void processWin32KeyPress(UINT message, WPARAM wParam, LPARAM lParam) {}
复制代码
二,打开cocos2dxplatformwin32CCEGLView_win32.h

在CCEGLView类的定义上边声明

class CCLayer;
复制代码在CCEGLView类的private下添加变量
CCLayer *m_pLayWin32Key;
复制代码在public下添加函数
void SetWin32KeyLayer(CCLayer *pLayer)

{

m_pLayWin32Key = pLayer;

}
复制代码
三,打开cocos2dxplatformwin32CCEGLView_win32.cpp

在文件开始部分添加

#include "CCLayer.h"
复制代码
在CCEGLView构造函数中初始化CCLayer(NULL)

在WindowProc函数的开始部分添加

if(NULL != m_pLayWin32Key)

{

m_pLayWin32Key->processWin32KeyPress(message, wParam, lParam);

}
复制代码
四,重新生成libcocos2d将新生成的libcocos2d.lib和libcocos2d.dll放到相应位置

这样就可以在自己的程序中捕获win32的消息了。只需要在某个Layer的初始化部分添加

CCDirector::sharedDirector()->getOpenGLView()->SetWin32KeyLayer(this);
复制代码然后重新继承虚函数processWin32KeyPress,就可以处理消息了。当然在Layer销毁前别忘记调用
CCDirector::sharedDirector()->getOpenGLView()->SetWin32KeyLayer(NULL);
复制代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows null layer class