直接看继承关系图:函数
多数用到的是限时动做,其意思就是有限时间内完成的动做,它又分为瞬时动做和延时动做。this
瞬时动做以下:.net
延时动多就多了,但绝大多数又分为两种即to和by.to是至,by增量。看个例子:对象
CCActionInterval* actionTo = CCScaleTo::create(2.0f, 0.5f);
CCActionInterval* actionBy = CCScaleBy::create(2.0f, 0.5f);继承
一个精灵执行了actionTo后的大小是原来的一半。执行actionBy后就是原来的1.5倍。资源
比较麻烦的就是如下几种了:get
CCSequence,即动做会顺序执行,一个执行完了接着执行下一个。it
CCSpawn,动做融合,即其参数例表里的动做同时执行。
CCRepeatForever,动做永远执重复执行。
这三个能够组合其余动做,它们之间也可能相互组合。
再有就是能够调用函数的动做了,以下:
一个动做序列,其中顺序执行其中的六个动做,前两个就是传说中的瞬时动做。后三个就是能调动函数的。调用的函数均无返回值。
其参数都有一个target,一个选择器.target是指你要调用哪一个对象的方法,这里就是this。假如你有我的类的对象小明,你想调用他的方法,这里this就要
换成小明的指针了。选择器里面的函数名就是你要调用的方法了,在cocos2d中前面不须要指出类名的,但cocos2d-x中是要的,主要缘由应该是objc和C++的不一样。
而且只是函数名,不要带();
CCCallFunc:调用的方法是不带参数的。
CCCallFuncN:调用的方法是须要一个NODE的指针做为参数,其传过来的就是执行这个动做的NODE,如A->runAction,就是指A,并非其参数target.
CCCallFuncND:调用的方法是须要一个NODE的指针和一个数据的指针做为参数;可能把数据传过去。
CCCallFuncNO:和上面的CCCallFuncND差很少,不过传的是一个CCObjet*.
还有一个状况,以下:
CCActionInterval* act1 = CCRotateTo::create(1, 90);
CCActionInterval* act2 = CCTintTo::create(2, 255, 0, 255);
m_tamara->runAction(act1);
m_kathia->runAction(act2);
当执行这四句代码后,两个动做会同时执行。相似CCSpawn。
action的具体实现没有具体研究,不过我以为你能够把它当成一个线程来用。好比,你能够用CCCallFunc预加载一些资源等,这样程序能够一直执行,不用
等待。相似执行一次的schedule。不少用到线程的时候用这两个替代未常不可。
好了,就想到这些东西,再想到再补充吧。
第一次写,不足之处还望指正。
转载请注明出处。