关于Cocos2d-x的动作和动画

  1.动作,在cocos2d-x中有非常多种的动作,各种移动,旋转,缩放,淡入淡出....等等非常多,但是这些动作只是作用于节点,最常作用于的就是精灵节点。而且我们可以把很多个动作放进一个Sequence类型的动作中,一次性可以执行多个动作。还有很多类似Sequence类型的类型,只是作用不同而已。

  2.帧动画,这种动画是按照一定的速度draw出一定数量的图片,从而达到连环画的效果,也就好比我们一个人的攻击动作分解成很多个步骤,每个步骤都有一张完整的人的图,这时候我们在查看图片的管理器中,连续点击下一张,就会出现连贯的攻击动作,而我们点击的速度其实等价于游戏中的一秒几帧,是可以自己设置的。动画可以直接使用动画帧实现,也可以用动画帧缓冲实现,动画动作也可以直接使用动画帧实现,或者用动画帧缓冲实现。第二种方法比第一种的优势就是效率非常高,它只需第一次把所有图片或者动画加载进缓冲区,然后在需要的时候调用就行了。而第一种方法每一次都要去调用需要的图片或者动画,非常地浪费性能。但是第二种方法需要用到的游戏资源就比第一种的多。第一种只需要很多的动作分解的PNG小图片,而第二种需要会被放进精灵帧缓存的管理所有分解图片的plist文件,还要管理所有动画动作的plist文件,还要一张包含所有动作分解的PNG小图的PNG大图,还要所有的动作分解的PNG小图。第二种方法的核心理念就是先缓存再使用。

  当然,这种性能上的差别只有在大的游戏中才有,所以目前我觉得我只要使用第一种就可以了,毕竟第一种比较好理解。而且制作plist文件感觉很麻烦,而且现在还没有找到什么好的制作工具。

  以上说的动画都是帧动画,还有一种常用的动画是骨骼动画,目前我可以用Spine工具制作骨骼动画,但是自己做的很丑,输出是jason文件,atls文件,PNG大图,jason文件其实是plist文件的前辈。

  

  

时间: 2024-10-30 22:40:52

关于Cocos2d-x的动作和动画的相关文章

bbframework入门之路【六】常用的动作和动画

[正文] 今天我们来介绍下游戏开发中必不可少的东西,那就是动作和动画.bbframework除了支持Cocos2D-X里面提供的动作之外,我们自己也根据实际项目需求往框架里面新增了不少的动作,所以这部分的内容比较多,我们简单的列举几个常用的动作和一些常用的和动作相关的函数,剩下的大家可以自行参考框架的“UAction.lua”文件,UAction里面包含了bbframework提供的所有动作,包括每个动作的案例代码和详细的注释. 话不多说,我们直接进入主题.我们bbframework的动作是通过

cocos2d-x JS 利用重复动作实现动画播放(实现倒计时)

cocos2d-js: cc.delayTime() and cc.repeatForever() don't work together in cc.sequence() 1 this.numm = 100; //设置倒计时总数为100 2 3 var act = cc.sequence(cc.callFunc(function() { 4 5 //在这里面可自定义事件(在此我以倒计时为例) 6 7 this.numm --; 8 this.table_time.setString(this.

cocos2dx层精灵、以及精灵的动画与动作

层 精灵 精灵不一定是静态的.通常,一个精灵可以不断变化,变化的方式包括:移动.旋转.缩放.变形.显现消失.动画效果 (类似 GIF 动画)等.精灵按照层次结构组合起来,并与玩家互动,构成了一个完整的游戏. 从绘图的角度来说,图形按照自上而下的顺序绘 制出来.为了绘制场景,需要绘制场景中的层,为了绘制层,需要绘制层中的精灵.因此,关系图实质上安排了图元的绘 图方式,关系图中的每一个元素称作节点(node),关系图则称作渲染树(rendering tree).渲染场景的过程就是遍历 渲染树的过程.

Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 在之前的博文中,我们创建了游戏的基础 - 小可爱的地鼠从洞中呼之欲出.我们花了大量的时间思考关于如何组织素材以及坐标置位,以让我们的游戏在iphone,ipad以及高清屏上看

Unity3D - 动作动画忽略timeScale

近期在调战斗时的动画与特效.Unity3D对加/减速提供了Time.timeScale支持.可是,timeScale提供的是全局的时间缩放,而我们有些动作或动画是不希望被timeScale加减速的.比方,<刀塔传奇>中播放大招时.除了大招特效,全部别的动作/动画都暂停. 以下各自是Animation.Animator和粒子特效的ignoreTimeScale方法. Animation Time.realtimeSinceStartup记录是不受timeScale影响的真实时间,利用它来在每一帧

(转)Unity3D - 动作动画忽略timeScale

转自:http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支持.但是,timeScale提供的是全局的时间缩放,而我们有些动作或动画是不希望被timeScale加减速的.比如,<刀塔传奇>中播放大招时,除了大招特效,所有别的动作/动画都暂停. 下面分别是Animation.Animator和粒子特效的ignoreTimeScale方法. Animation

Cocos2D-X2.2.3学习笔记12(瞬时动作)

到眼下我们已经学习了有 坐标系统 内存管理 UI系统 事件处理 几何图形 今天我们来学习动作管理OK 我们来看看类结构图 CCAction   全部动作的基类 以下派生了三个子类:CCFiniteTimeAction,CCFollow,CCSpeed 这些我们先不看  我们主要来介绍一下瞬时动作, CCActionInstant 瞬时动作 故而 一瞬间就完毕的动作,它没有延迟时间的 好的  開始 #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORL

3Animation动画的创建,CCSpeed,CCFollow

 动画,不同于动作,动画并非属性的改变.而是对帧的播放. 2 方法一 CCSprite * sp = CCSprite::create("animation/p_2_01.png"); sp->setPosition(ccp(240,160)); //注意:这里的CCRectMake中的参数都是相对自己来说的,前两个参数定义了一个点,80,80表示的是矩形的长,宽. CCSpriteFrame * frame1 = CCSpriteFrame::create("an

spine动画融合与动画叠加

一.动画融合setMix 1.概述:两个动作之间的平滑过渡 参数duration为需要多少时间从fromAnimation过渡到toAnimation,过渡时间为动画重叠时间. 下图为动作切换时的情况(setAnimation),左红线为切换动作时刻,两个红线之间为动作切换时间,这之间动画播放为A与B的混合,A和B所占的权重是不断变化的,从A占的权重从100到0,B占的权重从0到100.右红线之后为动作B完全播放. 图1 下图是A动作后有B动作的情况(addAnimation) 图2 下图为错误