cocos2d-x在Linux平台上添加按键监听

cocos2d-x版本:2.1.4

主要分两个步骤:

(1)核心框架的修改
主要修改的文件:
cocos2dx\keypad_dispatcher\CCKeypadDelegate.h
cocos2dx\keypad_dispatcher\CCKeypadDispatcher.h
cocos2dx\keypad_dispatcher\CCKeypadDispatcher.cpp
修改方法可以自行搜索,也可以参考下面的博文(介绍了核心框架、Android,Win32的修改):
http://blog.csdn.net/keshuiyun/article/details/9788533

(2)相应平台的修改
至于Linux平台,需要修改
cocos2d-x-2.1.4/cocos2dx/platform/linux/CCEGLView.cpp

(a)增加头文件
#include "keypad_dispatcher/CCKeypadDispatcher.h"

(b)修改keyEventHandle(int iKeyID,int iKeyState)函数

修改方法类似win32,调用CCDirector的方法分发按键事件。

例如增加Enteer和返回键(ESC):

void keyEventHandle(int iKeyID,int iKeyState) {
 if (iKeyState ==GLFW_RELEASE) {
 return;
 }

 if (iKeyID == GLFW_KEY_DEL) {
 CCIMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
 } else if (iKeyID == GLFW_KEY_ENTER) {
 CCIMEDispatcher::sharedDispatcher()->dispatchInsertText("\n", 1);
 //修改
 CCDirector::sharedDirector()->getKeypadDispatcher()->dispatchKeypadMSG(kTypeKEYCODE_ENTERClicked);
 
 } else if (iKeyID == GLFW_KEY_TAB) {
 }
 //修改
 else if (iKeyID == GLFW_KEY_ESC) {
     CCDirector::sharedDirector()->getKeypadDispatcher()->dispatchKeypadMSG(kTypeBackClicked);
 }
}


kTypeKEYCODE_ENTERClicked和kTypeBackClicked是cocos2dx\keypad_dispatcher\CCKeypadDispatcher.h中定义的枚举值。


GLFW_KEY_ENTER和GLFW_KEY_ESC的值定义在"GL/glfw.h"头文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值