看过这位的技能冷却 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); } }
下面是图片