综述:
这篇摘要主要来讲讲一些实用的游戏开发方面的工具,本期以cocos引擎为主。
介绍引擎的垃圾话就不说了,自行百度,我相信没多少人想看。
其实有不少的合图工具,这里介绍其中一款不错的TexturePacker合图工具。
先说说为什么需要把图片合到一张里面。我们知道图片文件显示在游戏上,是有一个过程的,即文件被读取到内存,再转码为GPU能识别的纹理。那么这个转换过程的速度,就会受到两个主要因素影响:
前者的速度怎么提高,就是尽量减少I/O的操作,比起一张一张的I/O,直接扔一张大的集合进去会快的多,可能一次性的读取时间会增加,这里随便加一个Loading进度条动画就行,后面的速度会快很多。
而后者的速度,跟你读取的图片大小有关系,所以即使是合图,也不宜很大,最好是零散的小图片合集,大片大片的场景图就不要合成了。
TexturePacker是收费软件,虽然也有破解版,但是能买还是买,支持正版。
官网下载地址
我们点击正上方的按钮,可以选择一个一个图片拉到左边的Sprites框里,也可以直接Add smart folder。当然不要一下子拉进来太多。
然后我们就能看到这个合图文件plist了。不过有一点要注意,免费版的打出来可能会有水印。如果你想要输出其他格式的,在右边的Data Format调节,还有一些细节的自行研究。
这个裂图工具其实没什么好讲头,只是我无聊想劈开plist文件时候找的,挺小的500k。
百度网盘分享
2. 我以一个宝箱素材为例,切图需要有plist和对应的png文件,不是什么都能切的!!
3. 打开之后是这个界面,这个时候我们只需要点击保存图片,就会在素材的当前目录下导出单个的图片。
PhysicsEditor和TexturePackage是同一家公司的产品,PhysicsEditor是用来描绘物理刚体形状的,一般如果我们需要设计一些复杂一点的形状,尤其是不规则的,比如我举个例子,飞机。
local plane = Plane.new()
plane:setPhysicsBody(cc.PhysicsBody:createBox(plane:getContentSize()))
那么我们得到的一个飞机刚体形状就是一个Box,这样的话,子弹如果碰到你飞机的空白区域,就会提前爆炸,当然如果你代码进行区域判断处理应该也可以。不过我觉得有点麻烦。
那么PhysicsEditor应该怎么用,
我们使用的是第三个,也就是自定义的形状,第一和第二个是圆形和简单的多边形。
打开自定义形状之后,是不是觉得这个描边很棒。有必要知道这几个参数的意思:
上方有一个滑动条,放大或缩小作用。顶点数量可以调整。
还有几个要注意的点,cocos3.x后,物理部分就默认使用Chipmunk了,不要用Box2D部分,这两者封装的顶点顺序有差别。锚点的选择也要跳到中心(0.5,0.5)。一切准备好之后,你就会看到对应的plist文件。
用文本工具打开,能看到一串的点,这就是我们要的顶点数据。
这样创建飞机。
当然会有人问这样一个一个点的输入很麻烦,是的,非常麻烦。有两个解决办法:
1. 尽量用少的点,精细的点来代替你的要求,否则换一个物理构建方式。
2. 用第三方的库来引用。
对于第二点,我们可以用GB2ShapeCache-x 或者PEShapeCache_X3_0类似的,这些库可以直接导入你的plist文件,很方便,自己写的也可以。但是这些都是在C++层面,也就是cocos2d-x的版本,Quick和Lua框架需要进行相应的Lua-binding,然后Lua-binding又会有不少的问题。。。如果有机会,下次会讲。这方面的后续知识需要自己百度。
cocos自己的粒子其实比unity逊色多了,不过有时候还是得用。偷懒的话用网页就行。。
网上一搜,免费的粒子编辑器太多了,但是在实际使用过程中可能会出现各种问题,到时候实际问题还是需要实际解决,我下面列举几款。
网页在线编辑粒子
有一点要记住,cocos能识别的粒子多半是plist文件格式配合纹理图,AE、Unity或者其他引擎识别的粒子都是不行的,而且cocos的源代码对粒子这方面的支持比较少,比如不支持单个粒子的改动,如果有这方面的需求,可以手动修改源代码,或者寻找其他的方法。
1. 最常见的Windows的粒子编辑器是Cocos2d Particle Builder,
基础的属性都有,也能导出为plist文件。我个人的意见的cocos的粒子效果期望不要太高,满足基本要求就行,达不到FX Particle Builder的效果。至于里面的一些具体的粒子属性,粒子发射速度,颜色,重力,加速度,生命周,角度什么的还请慢慢研究。
导出时选择Save as,保存为plist文件。这样就可以直接在代码里面使用。导出时有两个选项,是嵌入纹理还是单独出来,看需求。我一般是嵌入纹理。
2. 最近找到另一款开源的编辑器,准备试试。看Texture是挺不错的,项目里面有详尽的使用说明,贴几张图和地址。
Cocos Studio和UI编辑器属于官方的编辑器,不过已经停止更新了,触控现在在推的主要是Cocos Creator和js语言。以前的游戏开发团队会使用1.6版本或者2.x的版本,Cocos Studio里面也有上述的一些编辑器的功能,比如合图csi,1.6版本的四大编辑器但是有不少的缺点,比如动画编辑时不能复制简单的帧等等。至于为什么团队不使用最新的技术,每个团队有每个团队自己的考虑。这些官方的说明还是去看官方的文档更好。给一个Cocos Creator官方文档的链接。GitBook