让精灵在屏幕中进行移动就是我们想要的最终结果了吗?当然不是。可不可以运行多个动作呢?是的,没问题,Cocos2d-x通过几个方式来支持这种操作。
就如同它的名字,一个序列Sequence
就是多个动作按钮一定顺序进行排列。需要按反方向来播放序列动作?也没问题,Cocos2d-x也支持这个操作。
看一下面的例子,通过序列Sequence
逐步移动一个精灵Sprite
:
这个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
。
会在同一时间播放所有指定的动作。有一些可能比别的稍长一些,所以出现这种情况动作的播放不会在同一时间完成。
auto myNode = Node::create()
auto moveTo1 = MoveTo::create(2,10));
auto moveBy1 = MoveTo::create(2,10));
auto moveTo2 = MoveTo::create(2,10));
myNode->runAction(Spawn::create(moveTo1,nullptr));
为什么要使用
呢?有什么理由吗?当然!当游戏的主角获得能力提升时要播放多个动作的时候。当BOSS战的最后阶段需要同时播放多个动作来终结的时候。 原文链接:https://www.f2er.com/cocos2dx/344225.html