2D开源游戏引擎调研报告(三)

三.Cocos2d-x

0.基本介绍
Cocos2d-x 是一套成熟的开源跨平台游戏开发框架。引擎提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能, 被广泛应用于游戏开发及交互式应用的构建。
官网:https://www.cocos.com/

1.语言和代码
核心代码为c++,支持使用c++、Lua、JavaScript语言

2.项目的生成
①新建项目:
打开引擎安装包目录中的tools\cocos2d-console\bin文件夹,使用cmd创建项目
②项目导出可执行程序
Windows、IOS、Android

3对象的封装、继承、实例化等功能
使用c++(或其他语言)相关语法实现
引擎已有的功能(如音频播放器)可以通过getinstance方法获得实例

4多场景的切换
runWithScene() 用于开始游戏,加载第一个场景。只用于第一个场景。
replaceScene() 使用传入的场景替换当前场景来切换画面,当前场景被释放。这是切换场景时最常用的方法。
pushScene() 将当前运行中的场景暂停并压入到场景栈中,再将传入的场景设置为当前运行场景。只有存在正在运行的场景时才能调用该方法。
popScene() 释放当前场景,再从场景栈中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,直接结束应用。

5物理引擎:
Cocos2dx内置物理引擎,可以实现大多数功能
碰撞检测:
①比较两个对象是否碰撞 :使用boundingbox方法
②判断是否和其它对象碰撞:需要先创建PhysicsBody节点并增加监听方法

物理模型:
实体:PyhsicsBody(刚体)
相关属性:
质量、位置、旋转角度、速度和阻尼、材质(包含密度、摩擦、恢复系数)、形状(有内置模板可选)
绳子:使用关节效果实现
关节:包含多种关节,如限定两个物体之间的距离、速度等、还可以模拟弹簧效果
引力效果:用关节效果实现,或通过代码添加力的效果

6粒子效果
cocos2dx内置几种粒子效果且可以设置参数,但较为有限。建议使用第三方工具进行制作,制作的粒子效果可以作为资源文件播放。
官方推荐:
Particle Designer:Mac上一款非常强大的粒子特效编辑器
V-play particle editor:一款跨平台的粒子特效编辑器
Particle2dx:一款 Web 粒子特效编辑器,打开网页即可进行设计

7 UI组件,包含:
按钮:有
标签:使用createWithTTF方法
定时器:有,
Schedule:每x秒调用一次指定函数
Update:系统自带,每帧调用

菜单:有
复选框:有
进度条:有,LoadingBar、ProgressTimer两种
滑动条:有,Slider(也可作为进度条使用)
文本框:有,TextField

8》利用容器设置对象在屏幕中的位置
布局容器:
Absolute(绝对布局)、
Horizontal(水平布局)
Vertical(垂直布局)
Relative(相对布局)

控件容器:
scrollView、ListView、PageView、RichText多格式文本、TabelView

9光影渲染
无相应函数

10动画部分,包含:
10.1对象的位置、朝向、移动
基础方法:move、setrotation等
高级方法:cardinalsplineby(沿轨迹移动)、jumpto(沿抛物线运动)、BezierTo(沿贝塞尔曲线运动)
注:圆周运动需要自己实现

10.2对象的颜色渐变
修改color(R、G、B)和Opacity(透明度)
渐变效果没有直接的方法,可以在update函数(系统自带函数,每帧调用一次)实现

10.3数字的变化
有ActionTween方法可以让节点对象的属性值渐变(如scale,position)

11音频文件的加载、播放
分为音乐和音效,支持的音乐格式与平台有关
Android:mp3、mid、ogg、wav
IOS:aac、caf、mp3、m4a、wav
Windows:mid、mp3、wav

附网上资料说明:

CocosDenshion 引擎库实际上是对系统音频 API 的封装,因此它支持的音频文件格式与平台有关

12视频文件的加载、播放
目前只支持Android和IOS

13学习资源的丰富性
API只有英文,网上学习资源较多

评价:
在几年前,Cocos2dx是最为热门的游戏引擎之一。但是从2015年起开始陷入低谷,现在已经基本被Cocos Creator 取代。Cocso2dx最大的优势在于生成的安装包小,引擎效率较高(比如它会自动把文本转成图片格式)。由于它是纯代码的编辑方式,因此更容易修改底层的设计,程序较为灵活。对于制作小游戏来说是很好的选择。但是,由于没有图形化编辑器,UI设计相对困难,且无法直接调试子场景,不适合中大型游戏。

其它:
砖块地图制作软件:Tiled Map Editor
导出格式:tmx和png

你可能感兴趣的:(2D开源游戏引擎调研报告(三))