• Cocos引擎

    • 常用的工具

      • 合图工具TexturePacker
      • 裂图工具PlistView
      • 物理形状工具PhysicsEditor
      • 粒子编辑器工具
      • 界面编辑器Cocos Studio和Cocos Creator

综述:
这篇摘要主要来讲讲一些实用的游戏开发方面的工具,本期以cocos引擎为主。

Cocos引擎

介绍引擎的垃圾话就不说了,自行百度,我相信没多少人想看。

常用的工具

合图工具(TexturePacker)

其实有不少的合图工具,这里介绍其中一款不错的TexturePacker合图工具。
先说说为什么需要把图片合到一张里面。我们知道图片文件显示在游戏上,是有一个过程的,即文件被读取到内存,再转码为GPU能识别的纹理。那么这个转换过程的速度,就会受到两个主要因素影响:

  • 读取图片文件的I/O速度
  • 图片解码的速度

前者的速度怎么提高,就是尽量减少I/O的操作,比起一张一张的I/O,直接扔一张大的集合进去会快的多,可能一次性的读取时间会增加,这里随便加一个Loading进度条动画就行,后面的速度会快很多。
而后者的速度,跟你读取的图片大小有关系,所以即使是合图,也不宜很大,最好是零散的小图片合集,大片大片的场景图就不要合成了。
TexturePacker是收费软件,虽然也有破解版,但是能买还是买,支持正版。

官网下载地址

  1. 我们先来看看这个主界面,嗯。。。全英文,不过应该能看懂。

  1. 我们点击正上方的按钮,可以选择一个一个图片拉到左边的Sprites框里,也可以直接Add smart folder。当然不要一下子拉进来太多。

  2. 然后我们就能看到这个合图文件plist了。不过有一点要注意,免费版的打出来可能会有水印。如果你想要输出其他格式的,在右边的Data Format调节,还有一些细节的自行研究。

裂图工具(PlistView)

这个裂图工具其实没什么好讲头,只是我无聊想劈开plist文件时候找的,挺小的500k。

百度网盘分享

  1. 界面很清爽,操作很暴力。右上角两个按钮,我们点击加载图片。


2. 我以一个宝箱素材为例,切图需要有plist和对应的png文件,不是什么都能切的!!


3. 打开之后是这个界面,这个时候我们只需要点击保存图片,就会在素材的当前目录下导出单个的图片。

物理形状工具(PhysicsEditor)

PhysicsEditor和TexturePackage是同一家公司的产品,PhysicsEditor是用来描绘物理刚体形状的,一般如果我们需要设计一些复杂一点的形状,尤其是不规则的,比如我举个例子,飞机。


这个飞机如果我们只是

local plane = Plane.new()
plane:setPhysicsBody(cc.PhysicsBody:createBox(plane:getContentSize()))

那么我们得到的一个飞机刚体形状就是一个Box,这样的话,子弹如果碰到你飞机的空白区域,就会提前爆炸,当然如果你代码进行区域判断处理应该也可以。不过我觉得有点麻烦。
那么PhysicsEditor应该怎么用,


界面风格类似的,引入图片资源和导出资源文件。


我们使用的是第三个,也就是自定义的形状,第一和第二个是圆形和简单的多边形。


打开自定义形状之后,是不是觉得这个描边很棒。有必要知道这几个参数的意思:

  • Tolerance:形状公差,但一要素所允许的变动量
  • Trace node:跟踪节点
  • Alpha threshol:阈值
  • Trace mode:追踪方式
  • vertexes:顶点数量

上方有一个滑动条,放大或缩小作用。顶点数量可以调整。


还有几个要注意的点,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和Cocos Creator)

Cocos Studio和UI编辑器属于官方的编辑器,不过已经停止更新了,触控现在在推的主要是Cocos Creator和js语言。以前的游戏开发团队会使用1.6版本或者2.x的版本,Cocos Studio里面也有上述的一些编辑器的功能,比如合图csi,1.6版本的四大编辑器但是有不少的缺点,比如动画编辑时不能复制简单的帧等等。至于为什么团队不使用最新的技术,每个团队有每个团队自己的考虑。这些官方的说明还是去看官方的文档更好。给一个Cocos Creator官方文档的链接。GitBook

一些Cocos游戏引擎开发工具相关推荐

  1. 搭建Unity3D游戏引擎开发工具系列:UI框架

    Unity3D 开发工具系列 UI框架:UI基类UIBase Unity3D 开发工具系列 UI框架:UI管理UIManager Unity3D 开发工具系列 UI框架:MVC模式 Unity3D 开 ...

  2. Cocos游戏引擎VRDemo正式放出 助力虚拟现实游戏开发

    由触控科技主办的2016年Cocos春季开发者大会于3月31日正式举行,会上,Cocos引擎创始人王哲发表了主题为"变革:以内容生产为核心"的演讲,从引擎工具升级.引擎商业化服务和 ...

  3. 一款非常好玩的小程序游戏推荐给大家,基于cocos creator引擎开发的

    一款非常好玩的小程序游戏推荐给大家,基于cocos creator引擎开发的,排名包含微信好友排行榜,全球榜,快邀请好友,一起来玩吧.

  4. cocos creator 方法数组_基于 Cocos 游戏引擎的音视频研发探索

    本文转载自公众号:流利说技术团队(lls_tech) 版权归原作者所有 本文主要介绍了流利说团队基于 Cocos 游戏引擎进行音视频相关需求开发过程中所遇到的问题和解决方案.文章中将依次阐述 Coco ...

  5. 【转载】浅析游戏引擎开发

    浅析游戏引擎开发 1 引言 电脑游戏作为一种娱乐方式越来越为人们所接受.即时通讯开发对于电脑游戏来说, 游戏引擎是用于控制游戏功能的 主程序, 如接受玩家控制信息的输入, 选择合适的声音以合适的音量播 ...

  6. Unity Pro 2019 for mac(3D游戏动画开发工具) v2019.2.21f1

    想要一款功能强大的3D游戏动画开发工具?Unity 2019能够轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,以及一个全面整合的专业游戏引擎,用于创建诸 ...

  7. 游戏引擎与游戏引擎开发入门

    早想写一点游戏设计的文章与大家交流,一是经验的问题,二是公司正在紧张的游戏制作期,实在抽不出多少时间,一直没有动手,今天忽然头脑发热,写了一段,以后准备陆续写一些游戏创意,策划,制作,流程管理,和制作 ...

  8. 用C++实现跨平台游戏引擎开发

    游戏开发系列 用C++实现跨平台游戏引擎开发 你是否梦想写一部格斗游戏但却无从着手呢?是否你只因游戏开发好玩而对之感兴趣?本文我们将分析一个通用的跨平台游戏引擎,每个游戏开发新手都可以自由地使用它. ...

  9. 游戏引擎开发入门教程_v20210102

    游戏引擎(Game Engine)是一款游戏的"发动机",是游戏的核心部件,同时也是一个大型软件系统.游戏画面是否绚丽和流畅,游戏场面是否震撼和真实,这些都是由引擎决定的. 从编程 ...

最新文章

  1. 图像拼接--Creating full view panoramic image mosaics and environment maps
  2. 华人博士拿下ACM SIGSOFT杰出博士论文奖,师从北大谢涛教授
  3. CentOS学习笔记(一):中文语言包及输入法的安装使用
  4. 利用Java流进行类的整型字段求和的例子
  5. 代码挑战“ Vrolijke Framboos”事后验尸
  6. Ninject依赖注入(一)
  7. (String) 和 String.valueOf() 两种字符串转换的区别
  8. JS 匿名函数 自执行
  9. oppo手机android是多,OPPO手机卡屏?教你三招轻松解决卡顿问题,大部分安卓都适用...
  10. python书籍下载网站_Python 精品开源电子书网站
  11. 安装step7 v5.6报错的解决方法
  12. AI一分钟 | 小米在香港提交招股书募资100亿美元;寒武纪发布首款云端AI芯片和第三代终端IP...
  13. 用excel产生多组随机抽签数
  14. 如何批量调节图片对比度?
  15. Java——Session使用
  16. 12-Qt5调用OpenCV4
  17. 审稿较快的2区计算机sci期刊,哪些SCI期刊的审稿速度快
  18. matlab把句子分割成单词_将英语句子单个单词分割存储
  19. 收藏!立体库设备维修保养计划
  20. A1008 Elevator (20分)

热门文章

  1. JMeter性能测试实现与分析分享
  2. 基于VFW的视频应用程序开发
  3. C语言入门第二章-分支循环语句
  4. C语言经典递推算法之杨辉三角展开(详解)
  5. openwrt添加lcd4linux,openwrt添加新设备支持(定制固件一)
  6. velocity插件安装
  7. 域控制器「自研」还有戏吗?他们为何「跳出」华为MDC生态
  8. 直板何时用推挡,何时用反面横打
  9. 小白在“风变编程”上的Python入门之旅
  10. 常用shell脚本集合