动作
动作是由任意的CCNode对象给出的。动作经常来修改一些对象的属性比如位置,旋转,比例等等。如果这些属性是在一段时间内被修改,最好用CCIntervalAction动作或者CCInstantAction动作。
举例来说,CCMoveBy动作在一段时间内修改位置属性。因此它是一个CCIntervalAction子类。
// Move a sprite 50 pixels to the right, and 10 pixels to the topover 2 seconds.
[sprite runAction: [CCMoveBy actionWithDuration:2 position:ccp(50,10)]];
CCintervalAction动作有一些有趣的属性:
CCEaseIn
CCEaseOut
CCEaseInOut
CCSpeed
Etc….
所有相关的动作(以By)和一些绝对的动作(以To)有一个转换动作([actionreverse])来执行相对方向上的动作。
你可以通过CCActionManager来停止/继续所有的动作。
//Pause actions
[[CCActionManagersharedManager ] pauseAllActionsForTarget:sprite ] ;
//resume actions
[[CCActionManager sharedManager ]resumeAllActionsForTarget:sprite ] ;
基本动作
有一些基本的修改属性的动作
位置:
比例:
旋转:
可见:
不透明:
r,g,b:
CGSize s = [[CCDirector sharedDirector] winSize];
id actionTo = [CCMoveToactionWithDuration: 2 position:ccp(s.width-40,s.height-40)];
例子:
id actionBy = [CCMoveByactionWithDuration:2 position: ccp(80,80)];
[sprite1runAction: actionTo];
[sprite2 runAction:actionBy];
转换动作:
几乎所有的动作通过转换方法来实现。创建一个基本的动作通过 转换方法。
例子
id move = [CCMoveByactionWithDuration:2 position: ccp(80,80)];
id move_reverse = [move reverse];
move_reverse动作将会每隔2s来执行一次CCMoveBy动作,把坐标的值变为(-80,-80)。