cocos2dx3.2 實現控制面板進進出出,其樂無窮,哈哈

廢話少說,請看下圖:


現在我想點擊英雄頭像,下面的十字控制檯讓它往左邊消失,再次點擊,它又復原,這麼個小功能,如何做到的呢?

我將十字控制檯,放在一個叫做

m_controller裏面,這樣便於操作

在英雄頭像添加事件監聽

    m_playerHead =CustomSprite::createWithPath("HearoHead.png");

    auto pos = Vec2(m_playerHead->getContentSize().width /2, visibleSize.height -m_playerHead->getContentSize().height /2);

    m_playerHead->setPosition(pos);

    m_playerHead->onTouchEnded =CC_CALLBACK_2(MainScene::moveControl,this);

    addChild(m_playerHead);


在事件監聽回調函數MainScene::moveControl,裏面添加移動十字控制檯代碼如下:

void MainScene::moveControl(Touch *touch,Event *event)

{

    if(!m_isEnable)

        return;

    m_isEnable = false;

    Vec2 pos;

    CallFunc *f = nullptr;

    if(m_dirType ==KControllDirection::KNormalDirection)

    {

        pos = Vec2(0,0);

         f = CallFunc::create([this](){

            m_dirType =KControllDirection::kPlayerControllDirection;

             m_isEnable = true;


        });

        

    }

    else

    {

        pos = Vec2(-185,0);

        f = CallFunc::create([this](){

            m_dirType = KControllDirection::KNormalDirection;

            m_isEnable = true;

        });


    }

    

    auto action = MoveTo::create(1.0f, pos);

    auto seq = Sequence::create(action, f, NULL);

    m_controller->runAction(seq); 

}


注意下:m_isEnable,是標誌,其作用是確保兩個移動動作不會同時發生,如果沒有它,比如在英雄頭像瘋狂點擊

會出現意想不到動情況。在構造函數初始值爲true,表示可以執行移動動作。

哈哈就這樣實現了。


下面給出該遊戲的apk和源碼下載鏈接

https://github.com/aiwobiezoukainnn/MMGame.git

    







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章