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"
主要分两个步骤:
(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中定义的枚举值。