关闭

cocos2d的常用动作及效果总结之四:Special Actions

1083人阅读 评论(0) 收藏 举报

                       cocos2d的常用动作及效果总结之四:Special Actions

    以下文本转载自:http://hi.baidu.com/flwblog/blog/item/d57ca61cb77fdb9686d6b620.html ,感谢原作者。

    

Special Actions 个人理解包含三部分,一个是函数,一个“镜头跟踪”,一个属性控制(这是俺个人的叫法)。我会根据个人使用的经验慢慢添加内容,没用过的就先不写了。

函数部分:

CCCallFunc  

CCCalFunc用来在CCSequence中调用方法。比如,你需要在一个精灵做了一些列动画后,调用一个方法实现某个逻辑计算,那么你就需要这个东东,下面是示例

id actionTo = [CCMoveTo actionWithDuration: 2 position: ccp(160, 240)];

id actionCallFunc = [CCCallFunc actionWithTarget:self selector:@selector(doATask)];
 
id actionSequence = [CCSequence actions: actionTo, actionCallFunc, nil];
[sprite runAtion:actionSequence];
 
-(void) doATask
{
    //some code
}
 

以上代码的意思,sprite先移动到坐标(160,240)位置,然后调用 doATask方法。
说下CCCalFunc的参数,actionWithTarget 指定是你将要调用的方法时哪个对象的,这个参数不是只有self,可以是任何对象。参数是 self 时,意思就是调用当前对象的方法。
selector指的时方法的签名(我就这么叫吧),格式是 @selector(方法名),这里doATask,也就是代码最下边的那个。

CCActionTween 

如果,你需要改变一个精灵的属性,但是当前的action类并没有提供相应的功能,那么,你可以使用这个CCPropertyAction(原来的CCPropertyAction)来顶一下。代码如下:

id rot = [CCActionTween actionWithDuration:2 key:@"rotation" from:0 to:-270];
[sprite runAction:rot];

这类法我暂时还没用过,不过它比较简单。actionWithDuration 就是动作的时间, key 是要改变的属性的名, from 和 to 指定了属性值变化的范围。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1627562次
    • 积分:16948
    • 等级:
    • 排名:第606名
    • 原创:256篇
    • 转载:138篇
    • 译文:3篇
    • 评论:161条
    最新评论