您的位置:首页 > 移动开发 > Cocos引擎

7.【cocos2d翻译系列】Actions, Transformations and Effects--Composition actions

2013-06-19 13:14 495 查看
Composition actions (动作的构成)

这里有一些actions可以让你组合actions

Sequence action
Spawn action
Repeat action
RepeatForever action

Sequence(顺序动作序列)
CCSequence action就是一系列的actions。这些actions是按照定义时的顺序执行的。

例如:
id action1= [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id action2= [CCMoveBy actionWithDuration:2 position:ccp(80,80)];
id action3= [CCMoveBy actionWithDuration:2 position:ccp(0,80)];
[sprite runAction:[CCSequence actions:action1,action2, action3, nil]];
action1会首先执行。当action1执行完毕后action2会继续执行。并且只有当action2执行完毕后,action3才会执行。

重要:内部的actions必须不是无限执行下去的(你不可以添加一个CCRepeatForever的动作到CCSequence动作中)

Spawn(同步动作序列)
CCSpawn这个action可以让你同时运行几个action,这个CCSpawn动作持续的时间由其持续时间最长的
子动作(sub-action)决定。
id action=[CCSpawn actions:
[CCJumpBy actionWithDuration:2 position:ccp(300,0)height:50jumps:4], [CCRotateBy actionWithDuration:2 angle:720],nil];
[sprite runAction:action];
Repeat(重复动作)

CCRepeat这个动作,可以让你重复执行一定次数的某个动作,例如:
id a1=[CCMoveBy actionWithDuration:1 position:ccp(150,0)];
id action1=[CCRepeat actionWithAction:[CCSequence actions:[CCPlace actionWithPosition:ccp(60,60)],a1,nil]times:3];
[sprite runAction:action1];
RepeatForever(永远重复执行动作)
CCRepeatForever动作是一个特殊的动作,因为它会一直重复执行一个action(没有次数限制),它的持续时间是不确定的。

例如:
id a1=[CCMoveBy actionWithDuration:1 position:ccp(150,0)];
id action2=[CCRepeatForever actionWithAction: [CCSequence actions:[[a1copy]autorelease],[a1reverse],nil]];
[sprite runAction:action2];
重要:CCRepeatForever不是一个有效的CCIntervalAction。你不能在CCSequence中使用它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  2d cocos2d iOS 游戏 翻译
相关文章推荐