所以我得到了它,我还制作了一个教程,你可以在这里查看:
http://www.cocos2d-x.org/forums/6/topics/39145
我们将首先在我们想要键盘的场景中创建两个功能。
他们将是:
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)
{
}
当我们按下/释放键盘上的一个键时,这些函数将被调用。
接下来我们需要一个监听器来寻找我们将这样创建它的键盘(我在 init 函数中做了)
auto keyboardListener = EventListenerKeyboard::create();
keyboardListener->onKeyPressed = CC_CALLBACK_2(OurScene::keyPressed, this);
keyboardListener->onKeyReleased = CC_CALLBACK_2(OurScene::keyReleased, this);
EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(keyboardListener, this); // use if your version is below cocos2d-x 3.0alpha.1
// use this: Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(keyboardListener, this); if you are using cocos2d-x 3.0alpha.1 and later!
此代码创建一个键盘侦听器,然后设置在按下或释放键时将调用哪些函数。
现在我们的程序可以检测键盘了!
等等……我怎么知道按下了什么键?很简单!让我告诉你:
//put this inside keyPressed or keyReleased
if (keyCode == EventKeyboard::KeyCode::KEY_W)
{
CCLog("W key was pressed");
}
这段代码将检查按下的键的键码是什么。键码列表位于 EventKeyboard 类中。要使用键码,您只需键入:
EventKeyboard::KeyCode::KEY_**whatever key** - 你通常会得到一个可供选择的可用键列表。