首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos2d-x键盘实现

Cocos2d-x键盘实现
EN

Stack Overflow用户
提问于 2013-11-14 08:07:11
回答 1查看 3.7K关注 0票数 2

我正在使用cocos2d-x为windows、mac和linux制作一个游戏,我想在我的游戏中使用键盘,但是在cocos2d-x3.0alpha中没有正式的键盘实现。我读了很多关于键盘实现的论坛文章,我看到了一些定制的cocos2d-xbrache,但是我已经修改了cocos2d-x,所以我需要将代码放在CCDirector或其他类中。谁能告诉我怎么让它起作用的密码吗?(我不喜欢在上述所有平台上运行的代码)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 18:01:32

所以我开始工作了,我还编写了一个教程,您可以在这里查看:http://www.cocos2d-x.org/forums/6/topics/39145

我们将从在场景中制作两个功能开始,我们希望键盘在上面。它们将是:

OurScene.h:

代码语言:javascript
复制
void keyPressed(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);
void keyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);

OurScene.cpp:

代码语言:javascript
复制
void OurScene::keyPressed(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event)
{

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

}

当我们按下/释放键盘上的一个键时,将调用这些函数。接下来,我们需要一个侦听器来查找键盘,我们将像这样创建它(我是在init函数中创建的)

代码语言:javascript
复制
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!

此代码创建一个键盘侦听器,然后设置按下或释放键时将调用哪些函数。现在我们的程序可以检测键盘了!

等待…我怎么知道按下了什么键?很简单!让我告诉你:

代码语言:javascript
复制
//put this inside keyPressed or keyReleased
if (keyCode == EventKeyboard::KeyCode::KEY_W)
{
    CCLog("W key was pressed");
}

这段代码将检查按下的键的密钥代码是什么。密钥代码列表在EventKeyboard类中。要使用密钥代码,只需键入:EventKeyboard::KeyCode::KEY_**whatever key** -通常会得到可供选择的可用键列表。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19972514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档