突然发现好久没有更新了,大冬天有点懈怠勒~~
以后陆续总结一些游戏中的好玩的小特效。
下面的代码中已经把两个特效的实现封装到了类里面,有要的朋友可以参考一下。
关键实现就是 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)); }
m_bubble->refresh(buffStr); if(m_bubble->getIsVisible()) { m_bubble->setPosition(emotionPoint); }
关键实现是对 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
原文地址:http://blog.csdn.net/goodeveningbaby/article/details/43585907