多平台响应键盘事件!适用于Cocos2dx 3.0 alpha以上版本

Hello everyone! For a week I’ve been looking on how to make a keyboard work!
I managed to figure it out and I want to share my kNowledge with you!
So,before we get started - this tutorial only works on Cocos2d-x 3.0alpha and later.
We will start by making two functions in the scene we want keyboard on.
They will be:

首先在需要键盘处理事件的场景中文件添加如下两个函数

OurScene.h:
void keypressed(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event *event);
void keyreleased(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event *event);

OurScene.cpp:
void OurScene::keypressed(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event *event)
{

}
void OurScene::keyreleased(cocos2d::EventKeyboard::KeyCode keyCode,cocos2d::Event *event)
{

}

These functions will be called when we press/release a key on the keyboard.
Next we need a listener to look for the keyboard we will create it like so (I did it in the init function)

键盘按下时会调用上面这两的函数

接下来在init()方法添加如下代码来监听键盘事件。

auto keyboardListener = EventListenerKeyboard::create();
keyboardListener->onKeypressed = CC_CALLBACK_2(OurScene::keypressed,this);
keyboardListener->onkeyreleased = CC_CALLBACK_2(OurScene::keyreleased,this);
Eventdispatcher::getInstance()->addEventListenerWithSceneGraPHPriority(listener,this); // use if your version is below cocos2d-x 3.0alpha.1
// use this: Director::getInstance()->getEventdispatcher()->addEventListenerWithSceneGraPHPriority(listener,this); if you are using cocos2d-x 3.0alpha.1 and later!

This code creates a keyboard listener and then setting what functions will be called when the key is pressed or released.
Now Our program can detect keyboard! Wait… How do I kNow what key is pressed? It is simple! Let me show you:

然后就可以在最上面的两个方法添加keyCode的判定了。

//put this inside keypressed or keyreleased
if (keyCode == EventKeyboard::KeyCode::KEY_W)
{
    cclog("W key was pressed");
}

This piece of code will check what is the key-code of the key that was pressed. The list of key-codes is inside the EventKeyboard class. To use a keycode you just type:
EventKeyboard::KeyCode::KEY_**whatever key** - you will usually get a list of available keys to chose from.

Well,I think that’s it! Enjoy!

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...