Cocos2d-x游戏 技能冷去 时间进度

Cocos2d-x游戏 技能冷去 时间进度,第1张

概述头文件的定义: class HelloWorld : public Layer { public:     ProgressTimer * progressTimer;     MenuItemImage * mi;     Menu *m;     Sprite * sprite;     Size s; /** 技能按钮点击回调 */     void    skillClickCallBac

头文件的定义:

class HelloWorld : public Layer

{

public:

Progresstimer * progresstimer;

MenuItemImage * mi;

Menu *m;

Sprite * sprite;

Size s;

/** 技能按钮点击回调 */

voID skillClickCallBack(Ref* obj);

/** 技能冷却完毕回调*/

voID skillCoolDownCallBack(Node* node);

}

文件.CPP中去实现具体的方法和效果:

在init初始化方法中加入:

//正常显示按钮

mi = MenuItemImage::create("skill_1.png","skill_1.png",@H_502_129@CC_CALLBACK_1(HelloWorld::skillClickCallBack,this));

mi->setposition(Vec2(s.wIDth/2,s.height/2));

m = Menu::create(mi,nullptr);

m->setposition(Vec2::ZERO);

this->addChild(m);



然后是回调的方法



/** 技能按钮点击回调 */

voID HelloWorld::skillClickCallBack(Ref* obj)

{

//设置按钮不可用

@H_502_129@mi->setEnabled(false);

//灰模板按钮

@H_502_129@sprite = Sprite::create("stencil.png");

@H_502_129@sprite->setopacity(160);

sprite->setposition(Vec2(s.wIDth/2,s.height/2));

progresstimer = Progresstimer::create(sprite);

progresstimer->setposition(Vec2(s.wIDth/2,s.height/2));

this->addChild(progresstimer);

// 设置精灵进度条为顺时针

progresstimer->setType(Progresstimer::Type::RADIAL);

/** 让进度条执行一个动作 显示出动画效果 逐渐覆盖半透模板形成冷却效果;这里进行计时冷却动画的实现和时间控制*/

auto pto = Progressto::create(2,100);

auto call = CallFuncN::create(this,callfuncN_selector(HelloWorld::skillCoolDownCallBack));

@H_502_129@progresstimer->runAction(Sequence::create(pto,call,NulL));

}


/** 技能冷却完毕回调*/

voID HelloWorld::skillCoolDownCallBack(Node* node)

{

//恢复触摸

@H_502_129@mi->setEnabled(true);

//隐藏

progresstimer->setVisible(false);

}



效果如图所示:





好,这个简单的功能我们就实现 了,代码量非常小,是不是感觉很简单,哈哈

总结

以上是内存溢出为你收集整理的Cocos2d-x游戏 技能冷去 时间进度全部内容,希望文章能够帮你解决Cocos2d-x游戏 技能冷去 时间进度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1072022.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存