zoukankan      html  css  js  c++  java
  • 多平台响应键盘事件!(适用于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!

    參考:http://www.cocos2d-x.org/forums/6/topics/39145

  • 相关阅读:
    php中数组排序的基本方法
    mysql的锁--行锁,表锁,乐观锁,悲观锁
    php数组内数据个数统计函数
    《自我介绍》
    结对编项目作业
    《结对-英文词频检测程序-需求分析》
    对软件工程课程的期望
    挑战图像处理100问(4)——Otsu
    挑战图像处理100问(3)——二值化
    挑战图像处理100问(2)——灰度化
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5323756.html
Copyright © 2011-2022 走看看