cocos2d中的序列和Spawns

让精灵在屏幕中进行移动就是我们想要的最终结果了吗?当然不是。可不可以运行多个动作呢?是的,没问题,Cocos2d-x通过几个方式来支持这种操作。

就如同它的名字,一个序列Sequence就是多个动作按钮一定顺序进行排列。需要按反方向来播放序列动作?也没问题,Cocos2d-x也支持这个操作。

看一下面的例子,通过序列Sequence逐步移动一个精灵Sprite:

p22

这个Sequence很容易创建:

auto mySprite = Node::create()
 
// move to point 50,10 over 2 seconds
auto moveTo1 = MoveTo::create(2, Vec2(50,10));
 
// move from current postion by 100,10 over 2 seconds
auto moveBy1 = MoveBy::create(2, Vec2(100,10));
 
// move to point 150,10 over 2 seconds
auto moveTo2 = MoveTo::create(2, Vec2(150,10));
 
// create a delay
auto delay = DelayTime::create(1);
 
mySprite->runAction(Sequence::create(moveTo1, delay, moveBy1, delay->clone(), moveTo2, nullptr));
本例中按顺序播放序列中的每一个动作,如何同步一起运行这些动作?Cocos2d-x也支持这个操作,它称做 Spawn Spawn 会在同一时间播放所有指定的动作。有一些可能比别的稍长一些,所以出现这种情况动作的播放不会在同一时间完成。

auto myNode = Node::create()
 
auto moveTo1 = MoveTo::create(2, Vec2(50,10));
auto moveBy1 = MoveTo::create(2, Vec2(100,10));
auto moveTo2 = MoveTo::create(2, Vec2(150,10));
 
myNode->runAction(Spawn::create(moveTo1, moveBy1, moveTo2, nullptr));

为什么要使用 Spawn 呢?有什么理由吗?当然!当游戏的主角获得能力提升时要播放多个动作的时候。当BOSS战的最后阶段需要同时播放多个动作来终结的时候。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值