上次我们实现了加分版的功能,但为了能让玩家快速得知加分信息,应该另外实现加分动画。
在cocos中,我们显然可以通过对label类对象进行动作的设计以及动作序列的排列,从而达到这样的动画效果。
功能设计
这里我们打算实现的动画效果为:
1) 在碰撞的位置显示分数奖励
2) 分数奖励向上运动,并且同时在渐渐放大
3) 移除分数奖励
功能实现
void removeTips(int tag)
{
this->removeChildByTag(tag, true);
}
void updategrade(int increment,int x,int y)
{
grade += increment;
auto tips = Label::createWithBMFont(FNT_PATH, StringUtils::format("+%d", increment));
//位置在碰撞位置上方15px处
tips->setPosition(Vec2(x, y+15));
this->addChild(tips, 10);
//设置tag
tips->setTag(TIPS_TAG);
//0.4s内向上移动15px
FiniteTimeAction* move = MoveTo::create(0.4f,Vec2(x, y + 30));
//0.4s内放大为原来的1.3倍
FiniteTimeAction* scaleup = ScaleBy::create(0.4f,1.3f);
//合并动作,使得两个动作同时进行
FiniteTimeAction* actions = Spaw