cocos2d-x中动作类Action的2个常犯…

    今天在用Action类的时候犯了一个以前犯过的小错误,于是想写出来,以防再犯。
    Action用于操纵精灵在屏幕上的一切动作,包括移动,缩放,旋转,隐藏重现。。。。。。有瞬时动作和持续动作,也可以利用复合动作构造出更多更复杂的动作。虽然自身有一点的局限,但是足以应付大部分我们能想到的操作。当然我们也可以启动精灵的update定时器后重载update函数实现属于自己的动作。这也是Action类的原理。具体的调度原理可以参照《cocos2d-x高级开发教程----制作自己的捕鱼达人》。

    错误一:逻辑不清晰
复合动作给了我们很大空间和自由区构造属于复杂的动作以满足需求,同时要求对复合动作的时间逻辑准确把握。尤其是spawn和sequence的先后顺序,极容易出错。例如一个小球往正方向移动,同时顺时针转到,遇到障碍后反方向移动同时逆时针转动,整个过程中小球慢慢消失。正确的做法是
ccmoveto mt1 = ccmoveto::create(+);
ccrotateto rt1 = ccrotateto(+);
ccspawn sp1 =  ccspawn::create(mt1,rt1);
ccmoveto mt2 = ccmoveto::create(-);
ccrotateto rt2 = ccrotateto(-);
ccspawn sp2 =  ccspawn::create (mt2,rt2);
ccsequence se = ccsequence::create(sp1,sp2);
ccfadeout fa = ccfadeout::create();
ccspawn sp3 = (se,fa);

      错误二:每个动作只能分配绑定一个精灵,而且只能一次。
一个动作对象只能让一个精灵执行一次。一个精灵执行多次同样的动作需要构造多个动作对象,或者用repeat。多个精灵执行同样的动作也需要构造多个动作对象,分别跟每个精灵绑定。可以先声明一个动作指针,用指针多次构造动作,就不用声明多个变量。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值