cocos2d-x温故(二)Action!

直接看继承关系图:函数

image

多数用到的是限时动做,其意思就是有限时间内完成的动做,它又分为瞬时动做和延时动做。this

瞬时动做以下:.net

imageactiontests第一个例子也算是:线程

image设置缩放,位置,透明度颜色等等。指针

延时动多就多了,但绝大多数又分为两种即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,动做永远执重复执行。

这三个能够组合其余动做,它们之间也可能相互组合。

 

再有就是能够调用函数的动做了,以下:

image

一个动做序列,其中顺序执行其中的六个动做,前两个就是传说中的瞬时动做。后三个就是能调动函数的。调用的函数均无返回值。

其参数都有一个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。不少用到线程的时候用这两个替代未常不可。

好了,就想到这些东西,再想到再补充吧。

第一次写,不足之处还望指正。

转载请注明出处。

相关文章
相关标签/搜索