码迷,mamicode.com
首页 > 其他好文 > 详细

弹出表情气泡&仿魔兽的转技能CD实现

时间:2015-02-07 01:45:48      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:游戏   war3技能cd   气泡表情   

突然发现好久没有更新了,大冬天有点懈怠勒~~

以后陆续总结一些游戏中的好玩的小特效。


下面的代码中已经把两个特效的实现封装到了类里面,有要的朋友可以参考一下。


1. 红毛被打飞的时候的弹出气泡表情


技术分享

关键实现就是 ScaleTo 的应用

void BubbleLayer::show()
{
    m_IsVisible = true;

    this->setScale(0);
    ScaleTo* scaleTo = ScaleTo::create(0.15, 1.25);
    ScaleTo* scaleTo2 = ScaleTo::create(0.1, 1);
    this->runAction(Sequence::createWithTwoActions(scaleTo,scaleTo2));

}

void BubbleLayer::hide()
{
    m_IsVisible = false;
    
    ScaleTo* scaleTo = ScaleTo::create(0.15, 1.25);
    ScaleTo* scaleTo2 = ScaleTo::create(0.1, 0);
    this->runAction(Sequence::createWithTwoActions(scaleTo,scaleTo2));
}

调用接口是 refresh

    m_bubble->refresh(buffStr);
    
    if(m_bubble->getIsVisible())
    {
        m_bubble->setPosition(emotionPoint);
    }


2. 技能"转CD"


技术分享

关键实现是对 ProgressTimer 的应用

void SkillBtn::startCooldown()
{
    m_CurrentInterval = 0;
    schedule(schedule_selector(SkillBtn::cooldownUpdate));
    _pProgressCD->setVisible(true);
    m_IsTouchable = false;
}

void SkillBtn::cooldownUpdate(float dt)
{
    if(m_CurrentInterval <= m_CooldownTime)
    {
        m_CurrentInterval += dt;
        _pProgressCD->setPercentage( 100 * (m_CooldownTime - m_CurrentInterval) / m_CooldownTime);
    }
    else
    {
        unschedule(schedule_selector(SkillBtn::cooldownUpdate));
        _pProgressCD->setVisible(false);
        m_IsTouchable = true;
    }
}

调用方法

                        SkillBtn *btn = (SkillBtn *)getChildByTag(tag_skillbtn_1);
                        btn->startCooldown();

cooldown期间屏蔽了点击操作


代码下载


http://write.blog.csdn.net/postedit/43585907



弹出表情气泡&仿魔兽的转技能CD实现

标签:游戏   war3技能cd   气泡表情   

原文地址:http://blog.csdn.net/goodeveningbaby/article/details/43585907

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!