Actions就像发给任何CCNode对象的命令。这些动作改变对象的一些属性(position,rotation,scale等)。
如果这些属性在一段时间内被改变,用CCIntervalAction,否则用CCInstantAction。
举例来说:CCMoveBy动作在一段时间内改变position属性,因此,它是CCIntervalAction的子类。
程序:
//在2秒内让精灵向右移动50像素,向上移动10像素
[sprite runAction : [CCMoveBy actionWithDuration : 2 position : ccp(50,10)]];
CCIntervalAction有一些属性:
1:他们能用改变时间的动作来加速(time-altered actions)
(1)CCEaseIn
(2)CCEaseOut
(3)CCEaseInOut
(4)CCSpeed
2:所有相关动作(以“By”结尾的动作)和一些据对动作(以“TO”结尾的动作)都有一个翻转动作(reverse action)
[action reverse] 在相反的方向来执行动作。
你能通过CCActionManager来暂停恢复所有的actions
[[CCActionManager sharedManager ] pauseAllActionsForTarget : sprite ];
[[CCActionManager sharedManager ] resumeAllActionsForTarget : spite];
基本的动作:
位置position:
CCMoveBy
CCMoveTo
CCJumpBy
CCJumpTo
CCBezierBy
CCBezierTo
CCPlace
缩放scale
CCScaleBy
CCScaleTo
旋转rotation
CCRotateBy
CCRotateTo
可视visible
CCShow
CCHide
CCBlink
CCToggleVisibility
透明度opacity
CCFadeIn
CCFadeOut
CCFadeTo
rgb
CCTintBy
CCTintTo
举例:
CGSize s = [[CCDirector sharedDirector] winSize];
id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];
id actionBy = [CCMoveBy actionWithDuration:2 position: ccp(80,80)];
[sprite1 runAction: actionTo];
[sprite2 runAction:actionBy];