Cocos2d 提供四種核心組合動作,讓開發者能靈活編排動作序列:
依序執行一組動作,前一個結束後才執行下一個。
id action1 = [MoveTo actionWithDuration:2 position:ccp(100,100)];
id action2 = [MoveBy actionWithDuration:2 position:ccp(80,80)];
id action3 = [MoveBy actionWithDuration:2 position:ccp(0,80)];
[sprite runAction:[Sequence actions:action1, action2, action3, nil]];
重要: 內部動作必須有限時長,不可包含
RepeatForever等無限動作。
同時執行多個動作,總時長取最長的子動作時長。
id action = [Spawn actions:
[JumpBy actionWithDuration:2 position:ccp(300,0) height:50 jumps:4],
[RotateBy actionWithDuration:2 angle:720], nil];
[sprite runAction:action];
讓動作重複指定次數。
id a1 = [MoveBy actionWithDuration:1 position:ccp(150,0)];
id action1 = [Repeat actionWithAction:
[Sequence actions:[Place actionWithPosition:ccp(60,60)], a1, nil] times:3];
[sprite runAction:action1];
動作永不停止,時長不可測量。常搭配 Sequence + Reverse 實現來回運動。
id a1 = [MoveBy actionWithDuration:1 position:ccp(150,0)];
id action2 = [RepeatForever actionWithAction:
[Sequence actions:[[a1 copy] autorelease], [a1 reverse], nil]];
[sprite runAction:action2];
注意:
RepeatForever不是有效的IntervalAction,不可置入Sequence中。