突然发现好久没有更新了,大冬天有点懈怠勒~~
以后陆续总结一些游戏中的好玩的小特效。
下面的代码中已经把两个特效的实现封装到了类里面,有要的朋友可以参考一下。
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