
不得不说:在本篇博客中,我们将通过一个在Cocos2d-Js中使用从Cocosstudio导出的帧动画资源的例子,来简要介绍以下内容:利用ActionTimeline进行动画切割,如何使用导出的帧动画资源。关于帧动画,由于内容繁杂。我们将分为两篇进行介绍。本篇将主要介绍资源的准备工作,下一篇将主要介绍资源的使用问题。
一、Cocosstudio准备按照原来的进度安排,帧动画和骨骼动画我准备最后介绍。但是,看到好多朋友非常期待动画的讲解,于是就修改了一下计划。其实,关于帧动画,前几天就大体研究明白了,这几天一直围绕着一个“坑”,怎么都爬不出来。那就是:setFrameEventCallFunc方法总是回调不成功,后来经过和很多人交流,貌似这是一个BUG,而且ActionTimeline中的BUG还不止这一处。
额,希望官网尽早给出回应,尽早修复吧。当然了,也有可能我用的不对。如果有用得明白的朋友,欢迎指点,欢迎讨论。
这里要特别感谢帮助我很多的两个朋友:这路没刹车的和wxhqforever,给你们的热情帮助点个赞!!
第一步:从官网下载相应的示例,BattleScene。效果图如下:
其实,我们只使用中间那个拿着叉子的大鲨鱼。
第二步:制作我们使用的Cocosstudio项目:
具体改动 *** 作如下:为什么要自己制作Cocosstudio项目?
对于官网提供的资源:一、我们并不需要那么复杂,因为我们讲的重点在于如何使用资源,而不是如何制作资源,所以要进行适当地简化。二、官网提供的资源,特别是关于帧动画部分,和我们现在使用的环境并不匹配,出现版本兼容问题,所以我们要进行适当地改动。
1.目标概览:我们最终的制作效果如下:
2.导入资源,创建节点:创建项目后,我们需要导入如下资源:generalshark.csd和generalshark_png文件夹及其中的文件。导入后,创建一个新节点:Shark.csd。效果如下:
3.复制资源到新节点:双击generalshark.csd文件,在动画面板中选择全部资源(Ctrl + A),并复制(Ctrl + C),再双击Shark.csd文件,并在动画面板中选择后粘贴(Ctrl + V)。最后,删除generalshark.csd文件。部分截图如下:
全部选中时的状态:
粘贴后Shark.csd的状态:
PS:这里要说明一下,为什么要这么费事地复制粘贴。因为版本不兼容。你选中generalshark.csd后,会发现属性说明中是这样的:
你选中Shark.csd后,会发现属性说明中是这样的:
而且,你从颜色上就可以看出差别,Shark.csd和generalshark.csd的颜色也是不一样的。
4.设计布局:请直接将Shark.csd和三个button按钮拖入到Scene中进行相应的布局,具体布局请参照第一步中的目标概览。
5.非常重要!!!将Shark.csd切割为不同的动画, *** 作结果如下图所示:
PS:进入动画管理界面的方法为,点击动画面板中长得有点像“一支笔”的那个按钮。这步 *** 作必须认真完成,至于这么做的好处,我们将在下篇博客中详细阐述。
第三步:发布资源。注意发布设置中应该将数据格式改为JsON格式,发布位置你可以选择Cocos Code IDE中所创建的项目的res文件夹即可,当然,也可以另选其他文件夹。具体发布设置如下图:
二、Cocos Code IDE *** 作为了便利大家,下面提供Cocosstudio项目资源的百度云下载链接:
链接:http://pan.baidu.com/s/1eQxVXE6 密码:9vjw
第一步:创建Cocos2d-Js项目,并将Cocos Studio发布的资源res,拷贝到项目的res文件夹下或直接发布到项目的res文件夹下。
PS:创建项目的时候,分辨率默认640 x 960就可以了,方向选择竖向。
第二步:修改project.Json文件,在modules中添加cocostudio。在JsList中添加FrameAnimationScene.Js和resource.Js。具体代码如下:
{ "project_type": "JavaScript","deBUGMode": 1,"showFPS": true,"frameRate": 60,"ID": "gameCanvas","renderMode": 0,"engineDir": "frameworks/cocos2d-HTML5","modules": [ "cocos2d","cocostudio" ],"JsList": [ "src/resource.Js","src/FrameAnimationScene.Js" ] } 第三步:在resource.Js文件中指定所需的各种资源,以备后期加载使用。具体代码如下:
var res = { frame_animation_Json:"res/FrameAnimationScene.Json",shark_Json:"res/Shark.Json"};var g_resources = [];for (var i in res) { g_resources.push(res[i]);}
第四步:非常非常重要的一步,你需要修改main.Js文件,将其中的:cc.vIEw.setDesignResolutionSize(960,640,cc.ResolutionPolicy.SHOW_ALL);改为cc.vIEw.setDesignResolutionSize(640,960,cc.ResolutionPolicy.SHOW_ALL);。
虽然,我们选择的方向是竖向,但是不知道为什么,当创建项目的时候宽高还是为960,640。而,竖向的时候宽高应该为640,960。所以,要进行相应的修改才能正常运行。如果你想看不该的效果,可以尝试一下,会有惊喜哦。
main.Js的具体代码如下:
cc.game.onStart = function(){ cc.vIEw.adjustVIEwPort(true); cc.vIEw.setDesignResolutionSize(640,960,cc.ResolutionPolicy.SHOW_ALL); cc.vIEw.resizeWithbrowserSize(true); //load resources cc.LoaderScene.preload(g_resources,function () { cc.director.runScene(new FrameAnimationScene()); },this);};cc.game.run();三、总结
总结关于帧动画的准备工作,到这里就算结束了。你可以自己运行一下Cocosstudio项目中的Shark.csd中的动画效果,看一看。下篇中,我们将要详细讲解在CocosCodeIDE中如何使用帧动画资源。
特别说明:帧动画,顾名思义,是通过一帧一帧播放来达到动画效果的。与骨骼动画相比,有很多缺点。其中比较明显的有:如果要达到逼真效果,那么图片资源文件相对来说会非常大,图片数量也会非常多。
但是,官网的示例给我们提出了一种重要的改进措施。你可以打开官网示例中的BattleScene进行查看。你会发现,虽然使用的是帧动画,但是官网示例将整个人物分解为几个部分,每个部分一张图片。每个部分在每一帧的变化组成了整个人物在每一帧的变化。
这种“类骨骼动画精髓”的帧动画,有效地改进了帧动画在控制图片资源数量和大小方面的控制能力。
关于如何制作出优秀的帧动画,已经超出了本系列教程的范围,我们在这里就不再详细阐述了。
以上是内存溢出为你收集整理的Cocos2d-JS中使用CocosStudio资源——帧动画(1)全部内容,希望文章能够帮你解决Cocos2d-JS中使用CocosStudio资源——帧动画(1)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)