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

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中使用它。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值