看过这位的技能冷却 http://blog.csdn.net/zhy_cheng/article/details/8278012 ,但是实际的操作却不是这样的。当然还有一位直接封装好了技能冷却的按钮 http://blog.csdn.net/z104207/article/details/8059098,代码略多 。自己刚好用到,写了一下。我觉得我的是最傻瓜的。
//天怒斩
CCMenuItemImage* chopItem = CCMenuItemImage::create("jn2.png", "jn2.png", this, menu_selector(SkillLayer::chopSelector));
CCMenu* chopMenu = CCMenu::create(chopItem,NULL);
chopMenu->setPosition(ccp(384, 68));
addChild(chopMenu,1);
//天怒斩技能冷却
//创建一个蒙版用于进度条
CCSprite* ct = CCSprite::create("mengban.png");
CCProgressTimer* chopCT = CCProgressTimer::create(ct);
chopCT->setPosition(chopMenu->getPosition());
chopCT->setPercentage(0);
chopCT->setType(kCCProgressTimerTypeRadial);
//z轴必须要比menu大
addChild(chopCT,3,1);
//天怒斩回调
void SkillLayer::chopSelector(CCObject* pSender){
CCLog("chop");
CCProgressTimer* ct = (CCProgressTimer*)this->getChildByTag(1);
//只要进度条没有回到0就不会重复动作了
if(ct->getPercentage() == 0){
//给进度条一个数,注意不能是100哦,不然点击进度条无效了
ct->setPercentage(99.0f);
//这里我们要把进度条慢慢减少到0为止
CCProgressTo* to = CCProgressTo::create(8.0f, 0);
ct->runAction(to);
}
}
下面是图片