cocos的TargetedAction动作类的使用

TargetedAction是一个将动作与弄得绑定的类,通过它可以将自己想要给node添加的动作绑定在一起,这样在调用runAction(ActionInterval);的方式,绑定的node就会执行你绑定动作。有些人会问单纯的用node->runAction(actionInterval);不是也可以,这样岂不是多此一举么?其实不然,下面我们来看一下代码:

{

ProgressTimer *progress = dynamic_cast<ProgressTimer*> (mLayout->getChildByName("progressTimer"));

Vector<FiniteTimeAction*> actVec;
if ((curEXp + gainExp) > culLevelNeedExp)
{
TargetedAction *t0 = TargetedAction::create(progress, ProgressTo::create(0.7f, 100));
TargetedAction *t1 = TargetedAction::create(progress, ProgressTo::create(0.1f, 0));
CallFunc *func = CallFunc::create([=](){
lvAlt->setString(StringUtils::format("%d", level + 1).c_str());
});
Sequence *seq = Sequence::create(t0, t1, func,nullptr);
actVec.pushBack(seq);


int disExp = gainExp - (culLevelNeedExp - curEXp);
auto needexp = ObjConfig::getInstance()->getHeroConfig(++level)->getNeedExp();
while (disExp > needexp)
{
disExp -= needexp;
needexp = ObjConfig::getInstance()->getHeroConfig(++level)->getNeedExp();
TargetedAction *t2 = TargetedAction::create(progress, ProgressTo::create(0.7f, 100));
TargetedAction *t3 = TargetedAction::create(progress, ProgressTo::create(0.1f, 0));
CallFunc *tFunc = CallFunc::create([=](){
lvAlt->setString(StringUtils::format("%d", level + 1).c_str());
});
Sequence *tseq = Sequence::create(t2, t3, tFunc, nullptr);
actVec.pushBack(tseq);
}
float per = disExp * 1.0 / needexp * 100;
TargetedAction *tn = TargetedAction::create(progress, ProgressTo::create(0.7f, per));
actVec.pushBack(tn);
int indexSize = actVec.size();
Sequence *actSeq = Sequence::create(actVec);
this->runAction(actSeq);


}
else
{
CCLOG("do this chaptor");
TargetedAction *t = TargetedAction::create(progress, ProgressTo::create(0.7f, percent));
this->runAction(t);
}

}

是这样的,node执行动作的时候除了使用spawn可以同时执行多个动作外,其他情况下你直接调用node->runAction(actionInterval);效果不是你想要的效果的,不信你可以试试。第一次写博客,写的不好请不要喷。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥特曼VS怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值