Cocos2d-x动作学习笔记 分类: cocos2d代码编写 2015-07-27 17:30 7人阅读 评论(0) 收藏

Action类如其名,它可以改变Node对象的属性,Action对象是随着时间改变Node的属性。任何一个以Node为基类的对象都有可执行的动作对象。例如,你可以在一个时间段内将Sprite精灵从一个位置移动到另一个位置。


每个动作都有By和To两个状态。为什么呢?因为它们所执行的结果是不同的。By相当于这个节点是相对的。To是绝对的,意思是它并不考虑到这个节点的当前状态。
移动(Move)


在规定的时间内移动Node的位置。

auto mySprite = Sprite::create("mysprite.png");

// Move a sprite to a specific location over 2
seconds.

auto moveTo = MoveTo::create(2, Vec2(50, 0));

mySprite->runAction(moveTo);


旋转(Rotate)



在2秒内顺时针旋转Node。


auto mySprite = Sprite::create("mysprite.png");


// Rotates a Node to the specific angle over 2 seconds


auto rotateTo = RotateTo::create(2.0f, 40.0f);

mySprite->runAction(rotateTo);



缩放(Scale)




在两秒内将Node放大10倍





淡入淡出



Node淡入



FadeIn修改透明度的值(0~255之间)。与之相反的动作是“淡出”




色调(Tint)




Tint使节点的NodeRGB从当前值改变到用户设置值。




动画(Animate)




通过Animate可以很容易地实现精灵的帧动画效果。只要简单的每隔一段时间替换_display frame_即可。




减速(Easing)




Easing用一个给定的加速度来使动画更加顺畅。需要记住的是,无论速度快慢,ease动作总是同时开始和结束。在游戏中如果你想模拟一些物理特效,但又不想过度且麻烦地使用多个非常基本的动作,那么此时Ease动作将是模拟物理特效的一个



Sequence可以使一系列的动作对象按顺序执行。这一系列对象可以是任何数量的动作对象、函数,甚至是另外一个序列动作。函数?是的!Cocos2d-x中有一个CallFunc对象,它允许你创建一个function()函数并可以传递到Sequence中执行。这就允许你在序列动作对象中添加自己的函数功能,而不是仅仅局限于Cocos2d-x中提供的动作对象。



Spawn




Spawn与Sequence类似,不同的是使用Spawn时所有动作是同时执行的。你可以有很多动作对象,甚至其他Spawn对象。




Reverse(逆序)




Reverse的作用完全像它的名字一样,例如运行一系列动作时,你完全可以调用reserve()函数使动作逆序执行。然而,这并不只是简单的逆序运行,实际上还将原始的Sequence和Spawn的属性也转换为逆序。




Using the Spawn example above reversing is simple. 上面Spawn中的例子使用逆序就会很简单:


// reverse a sequence, spawn or action


mySprite->runAction(mySpawn->reverse());


大部分Action和Sequence对象都是可逆的!

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-07-27 17:30  leansmall  阅读(109)  评论(0编辑  收藏  举报