废话少说,请看下图:
现在我想点击英雄头像,下面的十字控制台让它往左边消失,再次点击,它又复原,这么个小功能,如何做到的呢?
我将十字控制台,放在一个叫做
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
总结以上是内存溢出为你收集整理的cocos2dx3.2 实现控制面板进进出出,其乐无穷,哈哈全部内容,希望文章能够帮你解决cocos2dx3.2 实现控制面板进进出出,其乐无穷,哈哈所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)