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); margin-top:0px; margin-bottom:0px; font-size:15px; font-family:Menlo"> 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |