Fork me on GitHub

cocos2d programming guide 基本动作

动作

动作是由任意的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 ] ;

基本动作

有一些基本的修改属性的动作

位置:

CCMoveBy

CCMoveTo

CCJumpBy

CCBezierBy

CCBezierTo

CCPlace

比例:

CCScaleBy

CCScaleTo

旋转:

CCRotateBy

CCRotateTo

可见:

CCShow

CCHide

CCBlink

CCToggleVisibility

不透明:

CCFadeIn

CCFadeOu

tCCFadeTo

r,g,b:

CCTintBy

CCTintTo

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)。

posted on 2012-04-05 17:26  pengyingh  阅读(140)  评论(0)    收藏  举报

导航