【问题标题】:Cococs2d-x keyboard implementationCocos2d-x 键盘实现
【发布时间】:2013-11-14 08:07:11
【问题描述】:

我正在使用 cocos2d-x 为 windows、mac 和 linux 制作游戏 我想在我的游戏中使用键盘,但没有官方的键盘实现 cocos2d-x3.0alpha。我阅读了很多关于键盘实现的论坛帖子,也看到了一些定制的 cocos2d-x 分支,但我已经修改了我的 cocos2d-x,所以我需要将代码放在 CCDirector 或其他类中。有人可以给我有关如何使其正常工作的代码吗? (不是我想要的代码可以在上述所有平台上运行的项目)
谢谢!

【问题讨论】:

    标签: windows macos cocos2d-x keyboard-events cocos2d-x-3.0


    【解决方案1】:

    所以我得到了它,我还制作了一个教程,你可以在这里查看: 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** - 你通常会得到一个可供选择的可用键列表。

    【讨论】:

    • 我在你链接的教程中添加了,以防你的链接失效。
    • 这里的代码有个小错误,我们用“listener”代替了“keyboardListener”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2010-10-03
    • 2011-05-31
    相关资源
    最近更新 更多