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

    







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