现在的位置: 首页 > 综合 > 正文

cocos2d-x 技能冷却

2013年10月28日 ⁄ 综合 ⁄ 共 986字 ⁄ 字号 评论关闭

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

下面是图片

抱歉!评论已关闭.