4.0
04 Dec 2019

版本特性

  • iOS/macOS 支持 metal
  • 使用 CMake,删除各平台的工程文件
  • 升级 GLFW 到 3.3
  • 升级 minizip 到 1.2
  • 删除废弃函数
  • 删除 h5 引擎和 Javascript 绑定
  • 删除 tiff
  • 删除 SimpleAudioEngine
  • 删除 experimental 名字空间
  • 修复 macOS 15 系统字体绘制问题
  • 适配 iOS13
    • UIWebView 使用 WKWebView 实现
    • VideoPlayer 使用 AVPlayerController 实现
  • 修复 lua 工程在 64 位设备的崩溃问题

文档

编写了一些文档方便开发者升级到 v4:

收起
3.17.2
27 May 2019

Cocos2d-x 3.17.2 侧重于稳定性的提升, 已有问题的修复和针对 OPPO 手机的性能优化。

版本变动

  • 针对 OPPO 手机的性能优化
  • 修复 bug:在安卓设备,当文件路径开头为 assets/ 时, FileUtils::listFiles() 无法正常工作
  • 修复了 Audio 在 iOS 设备上的崩溃问题
  • 修复了在安卓设备, VideoPlayer 无法播放 OBB 包里的视频文件的问题

详细的改动请参考 ChangeLog

收起
3.17.1
25 Dec 2018

Cocos2d-x 3.17.1 侧重于稳定性的提升, 已有问题的修复。

版本变动

  • 修复 3.17 引入的 Lua 加载性能下降的 BUG
  • 减少渲染中 glClear 的调用次数,降低电量消耗
  • CMake 脚本优化,解决存在的链接问题
  • Android 默认启用 CMake 方式编译
  • Android 升级 Gradle 到 4.6, SDK 28, plugin 3.1.0
  • 升级 LuaJIT 到 2.1.0-beta3,修复 3.17 Lua 项目的闪退问题
  • 升级 libwebsockets 到 2.4.2
  • FileUtils 内部加锁,增加线程安全,完善接口实现
  • 限制 Label 长度,避免绘制错误
  • 增加 Downloader 的 Lua 绑定

当前版本包含 45 项 bug 修复和 34 项小改进,不再列举,请参考 ChangeLog

收起
3.17
21 May 2018

Cocos2d-x 3.17 版本着重于工具链的更新,和稳定性的增强。

测试环境

Android 平台使用 Android Studio (3.0, 3.1, 3.1.1) 和 NDK r16 进行测试。

版本特性

  • 支持 iPhone X
  • 支持 Android Studio 3.0+
  • CMake 支持全平台,支持预编译引擎库
  • 升级 Spine runtime 至 v3.6.39
  • 升级 GLFW 至 3.2.1,并提供预编译库
  • 更新 Box2D,并提供预编译库
  • 去除 Android 的 ant 工程
  • 去除 Visual Studio 2013 的支持

详细介绍

支持 iPhone X

3.17 带来对 iPhone X 的支持,包含支持全屏模式,支持自动隐藏 Home 指示器,改用 Storyboard 作为启动屏幕,和增加获取 Safe Area 的接口。在开发支持 iPhone X 的应用时,最需要了解清楚的就是 Safe Area:

开发者可以通过调用 `Director::getSafeAreaRect()` 来获取 Safe Area 区域。

支持 Android Studio 3.0+

Android Studio 是 Google 官方唯一支持的 Android 开发 IDE。

该版本增加了对 Android Studio 3.0+ 的支持。在支持的过程中,同时将 NDK 版本从 r14 升级到 r16。对 Gradle 工程配置也进行了诸多改进,包括简化 Gradle 变量 PROP_*,将依赖声明中弃用的 `compile` 改为新的 `implementation`,增加用以削减 Release 包体积的 Proguard 文件。

CMake 支持全平台

扩展 CMake 构建支持至全平台,包括 Android (NDK)、iOS、macOS、Linux、Windows(VC++ compiler)。支持将引擎部分进行预编译,并在新的构建过程中重用预编译的引擎库。通过使用预编译库,可以极大的缩短工程构建时间。

详细的使用方法请参考 CMake 文档

升级第三方库

Spine 骨骼动画广泛用于 Cocos2d-x 开发的游戏,引擎跟进 Spine 的升级,升级 Runtime 至 3.6.39。

升级 GLFW 至 3.2.1 以修复支持游戏手柄时存在的问题,同时提供 GLFW 预编译库。

社区希望引擎升级 Box2D,可 Box2D 的新版本迟迟未发布,根据反馈 GitHub 提交 f655c603ba9d83 是稳定的,升级 Box2D 至该提交,同时提供 Box2D 的预编译库。

每一次版本发布,都会附带特定版本的第三方预编译库,如果由于项目需要想对第三方库进行定制,请参考: 第三方库文档

移除过时的内容

由于 Google 官方自 Android SDK Tools 25.3.0 就已放弃 ant 支持。移除旧有的 `proj.android` ant 工程,新的 `proj.android` 是 Android Studio 工程。NDK r16 弃用了 armeabi,引擎调整默认的编译架构从 armeabi 为 armeabi-v7a。
在 win32 平台,越来越多的开发者已经使用 Visual Studio 2015/2017 进行开发,移除对年代久远的 2013 的支持。现存的工程配置适合于 2015 ,如果需要使用 2017,可打开现有的 sln 文件,调整配置,或使用 CMake。

Bugs 修复,提高稳定性

该版本包含 51 项 bugs 修复和 33 项小改进,不再列举,请参考 Changelog

收起
3.16
10 Oct 2017

Cocos2d-x v3.16版本使用如下Android工具链进行测试:

  • Android Studio 2.3.3
  • NDK r14

特性

  • 更好地支持 creator_to_cocos2dx 这个Cocos Creator的插件
  • 新增 LayerRadiaGradientLayer
  • 支持__Android Studio 2.3.3__
  • 修复lua工程在Xcode 8.0+模拟器崩溃问题
  • 回退CocosStudio的reader和flatbuffer
  • 修复iOS 11编译错误
  • 使用bullet的预编译库以加快编译速度
  • 去除Windows 10 metor模式、Windows Phone和Tizen的支持
  • Web引擎更新Spine runtime到v3.5.35特性介绍

更好地支持 creator_to_cocos2dx

creator_to_cocos2dx是一个Cocos Creator的插件。该插件用于导出Creator创建的场景内容给cocos2d-x的C++/Lua工程使用。下文的__插件__就是指这个插件。
通过使用该插件,可以把Cocos Creator当成cocos2d-x的场景编辑器。该插件目前支持这些特性,会持续支持其他新的特性。有些特性只在v3.16+版本支持,比如RichText img标签。
插件的详细使用方法可以参考插件仓库的the READE,欢迎使用并给与反馈。

Scene effect in cocos creator

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-10-09-%e4%b8%8b%e5%8d%884-09-41

Scene effect in cocos2d-x

LayerRaidalGradient

LayerRadialGradien和LayerColor类似,它会在制定的圆里绘制颜色,效果如下:

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-10-09-%e4%b8%8b%e5%8d%884-10-33

Lua工程在Xcode 8.0+模拟器崩溃问题

v3.16版本之前,Lua工程在Xcode 8.0+模拟器会崩溃。这是luajit本身的一个bug,v3.16版本修复了这个问题。如果不想更新引擎,也可以直接更新luajit。

修复iOS 11编译错误

v3.16版本之前,CCFileUtils使用system()函数来删除目录。iOS 11删除了system,因此导致了编译错误。改版本修复了这个问题。对应的PR链接在这里,如果不想更新引擎的话,可以参考该PR的改动合并以修复这个问题。

Cocos Studio

v3.15更新了flatbuffer,破坏了Cocos Studio reader的兼容性。该版本回退了flatbuffer和Cocos Studio的reader。
如果不想更新引擎的话,可以手动从改版本或者v3.15之前的版本拷贝flatbuffer和Cocos Studio的reader。

提高编译速度

大部分的项目不需要bullet,因此这个版本使用bullet的预编译库以加快编译速度。后续还会继续使用更多预编译库,比如Box2D,3D粒子系统等以加快编译速度。
该版本同时修复了大量的warning,后续版本也会持续修复warning。

去除支持一些平台

由于人力资源问题,改版本删除了一些平台的支持。
Windows 10的metro模式和Windows Phone平台一直是微软的员工在负责维护了,但是他们决定不再继续维护了,而我们人力资源不足,因此去除支持这两个平台。不过在Windows 10仍然可以使用Win32工程。

同样由于人力资源问题,该版本去除了Tizen平台的支持。

收起
3.15.1
27 May 2017

功能介绍

该版本在3.15的基础上加了针对华为设备的优化代码。该优化代包含两部分内容:

  • 让游戏跑得更流畅
  • 在设备发烫时,降低游戏的功耗

引擎会搜集一些信息,如节点数、粒子数、播放音频数量等信息以计算游戏对CPU的需求等级,并把等级信息上报给系统服务。系统服务受到等级信息决定是否对CPU进行调频。
当设备发烫时,系统服务会调用引擎接口降低fps、减少粒子数,关闭背景音乐、音效等。等设备不发烫了再恢复。
该系统服务只在华为的新设备上存在,对于别的Android手机没有影响。如果不想要该优化功能,可以通过如下方式关闭:

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-23-%e4%b8%8a%e5%8d%8811-20-22
收起
3.15
21 Apr 2017

新版本特性  

  • 全面支持 Android Studio,包括编译、代码编辑和调试C++代码:使用文档
  • 音频模块在Android平台使用tremolo和 MP3 Decoder Library 解码音频文件,使得音频模块效率更高,兼容更多的Android设备
  • WebSockets 和 SocketIO 支持 SSL
  • AssetsManagerEx更加稳定
  • 更新 Spine runtime 到v3.5.35
  • 更新 flatbuffer 到v1.5
  • 升级 OpenSSL 到v1.1.0
  • 去除 Windows 8.1 的支持
  • 去除32位linux的支持

全面支持Android Studio

从 3.15 版本开始,可以使用Android Studio 2.3+ 编辑、编译和调试C++代码。只需要通过Android Studio打开 proj.android-studio 文件夹(比如 tests/cpp-empty-test/proj.android-studio ),然后点击 run 按钮就可以在Android设备或者模拟器运行、调试了。

音频模块在Android平台的改进

3.15版本之前,音频模块使用 OpenSL ES 解码、播放音频文件,但是很多的Android设备厂商会修改这部分代码,导致音频模块在不同的Android设备上有兼容性问题。该帖子就列出了许多音频模块的问题。

为了解决兼容性问题,我们引入了第三方的解码库tremolo和 MP3 Decoder Library 。该解码库也是Android源码使用的解码库。使用该解码库除了能解决Android设备的兼容性问题,同时还带来了不少性能提升:

0

引入该解码库会使最终的APK包增大100K左右,和带来的好处相比还是值得的。

去除Windows 8.1的支持

Windows 8.1的支持一直是微软的开发者在维护。因为市场占有率原因,微软觉得没必要继续支持Windows 8.1了。

去除32位linux支持

目前大部分的PC都是64位了,所以我们觉得去除对32位linux的支持。去除这个支持意味着第三方库去掉了对应的32位版本,这样可以减小发行包的大小,也减少引擎维护的工作。开发者如果想支持32位版本的话,可以使用这个仓库自己编译32位版本的第三方库。

其他

Android SDK Tools 25.3.0+去除了ant脚本和android命令 ,使得cocos命令无法打包Android的Eclipse工程(proj.android)。为了不至于在最后生成APK时才报错,现在cocos命令检查到这个版本后直接返回错误。有两个方法可以解决这个问题:

  • 从旧版本的Android SDK拷贝tools文件夹过来替换对应的目录
  • 使用Android Studio工程编译打包

从Android工具删除ant脚本和android的行为来看,谷歌是不希望大家继续使用Eclipse工程,所以建议大家还是使用Android Studio来编译打包吧。旧版本引擎虽然不支持Android Studio调试C++代码功能,但是编译打包还是没问题的。

收起
3.14.1
22 Jan 2017

在2017新年来临之际,Cocos引擎团队送上了新一年的惊喜:Cocos2d-x v3.14全新版本。该版本支持所有平台使用luajit 2.10-beta2、Sprite支持九宫格特性、新增动作类ResizeBy和ResizeTo......这么多给力的新功能,相信你一定会喜欢的。

280986329434709337

话不多说,下面我们赶紧来细细盘点Cocos2d-x v3.14新版新惊喜。

主要新特性

  • 支持Spine二进制格式
  • 所有平台使用luajit 2.10-beta2
  • 新增动作类:ResizeBy和ResizeTo
  • Android模拟支持关闭多点触摸
  • Sprite支持九宫格特性
  • 动作类新增功能,可以根据tag查询某一节点正在运行的动作数量
  • Button类可以设置title内容
  • EditBox支持文本水平对齐
  • 支持Mac平台手柄

主要特性详解

所有平台使用luajit 2.10-beta2 性能显著提升

之前的luajit版本无法在PC上方便地编译出arm64的字节码,需要用真机(比如iPhone6真机)编译,因此在之前的版本,iOS 64位使用的是lua,iOS 32位使用的是luajit。
新版本支持luajit 2.10-beta2版,开发者可以方便地在PC平台编译出arm64位的字节码,因此我们在各平台都使用了luajit,这样能够提升性能。如果使用Cocos命令编译、打包的话,那么Cocos命令会自动编译出对应平台的字节码,如果有生成64位字节码的话,那么会把这些字节码放到64-bit目录下。当然你也可以通过Cocos luacompile自己编译字节码,具体的使用方式可以参考Cocos luacompile -h输出的帮助信息。

通过Cocos命令编译、打包生成的字节码时各平台的情况如下:

平台

生成32位字节码

生成64位字节码

iOS

Android

是,如果APP_ABI的内容不是只包含64位架构(APP_ABI := arm64-v8a)

是,如果APP_ABI包含了64位架构,比如APP_ABI := arm64-v8a ...

Mac

Windows

Linux

Sprite支持九宫格特性  UI 界面调整更方便

在开发 UI 界面时,我们通常会使用九宫格格式的图像来显示尺寸可能会根据适配屏幕分辨率的需要动态修改的 UI 元素。如今Sprite现在支持九宫格特性了,使用方式如下:

c++ auto sprite = Sprite::create(...); // set center rect // the origin is top-left sprite->setCenterRectNormalized(Rect(x, y, width, heigh));

这样即使使用很小的原始图片也能生成覆盖整个屏幕的背景图像,一方面节约游戏包体空间,另一方面能够灵活适配不同的排版需要。

sprite-slice-1

详细信息可以参考Sprite::setCenterNormalized()的注释。

支持Spine二进制格式 解析更高效文件更小

使用方式没有改变,只是文件格式变成了二进制格式。这样的好处就是解析效率更高,文件更小。具体的使用方法如下:

`c++ skeletonNode = SkeletonAnimation::createWithBinaryFile("spine/spineboy.skel", "spine/spineboy.atlas", 0.6f);

...

spine-binary

新增两大动作类 节点缩放更方便

新增加两个动作类:ResizeBy和ResizeTo。和ScaleBy、ScaleTo不同的是,ResizeBy和ResizeTo改变的是节点的content size的大小。这种动作对于支持九宫格特性的节点的缩放效果比ScaleBy和ScaleTo好,因为ScaleBy和ScaleTo是对节点做整体缩放。效果对比如下:

resize-action-effect

已知问题说明

如果使用Xcode 8.2,那么lua工程会在iOS模拟器上崩溃。通过调试发现崩溃在lua_open函数的调用上。如果使用Xcode 8.1或一下版本,那么没有问题。我们怀疑这是Xcode的bug,在v3.14无法解决。使用lua的开发者在位iOS平台开发时有两个选择:

  • 使用Xcode 8.1或者一下版本
  • 使用Xcode 8.2,在Mac或者iOS真机开发、调试

该问题的进展可以跟踪下列帖子:

https://github.com/cocos2d/cocos2d-x/issues/17043

更多详细的改动列表,欢迎查看:

https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG

修复的问题

  • 如果创建物理场景但是没有设置3d物理的摄像机,那么程序会崩溃
  • 由于glfw版本冲突,在linux平台可能会有链接错误
  • 通过带有多边形信息的sprite frame创建的Sprite效果不对
  • VS2015编译Lua工程时有链接错误
  • 通过cocos compile/run -p android --android-studio命令编译Android工程时会有编译错误

其他

通过查看3.14.1版本信息了解所有的问题或者代码改动。

收起
3.13.1
14 Sep 2016

解决v3.13版本发现的比较严重的问题

  • Label的颜色错误问题;
  • 如果没有设置“design resolution”,应用程序在debug模式下会崩溃;
  • 在Android系统,如果通过点击应用图标从后台推前台,可能导致崩溃;
  • 在Android系统,如果音乐或音效资源不在APK包里,会导致无法播放;
  • 在Android系统,AudioEngine::stop()会回调`finish`回调函数;
  • 使用“SimpleAudioEngine”或者“AudioEngine”播放音效或者背景音乐,在Android 2.3.x会崩溃;
  • JSB中,如果传入object.setString()的参数类型是数字,没有任何效果。
收起
3.13
29 Aug 2016

Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone等等,省事省力省成本。

近日, Cocos引擎完成重大更新:正式推出Cocos2d-x v3.13版本。在新版本里,AudioEngine性能最高提升4倍、支持ETC1 alpha通道、集成AnySDK、增加VR插件、优化Canvas脏矩形算法等等。该版本进一步完善并整合了历史零碎功能,为开发者创造更为简单、快捷的开发环境。

AudioEngine性能最高提升4倍

Android平台下,AudioEngine使用OpenSL ES播放声音。从Android 4.2开始,OpenSL ES支持解码声音文件为PCM数据,引擎正是利用这个以特性来缓存解码后数据以提升性能。因此,该性能提升只在Android 4.2及以上版本有效。需要先preload,否则第一次播放性能没有很大提升。

支持ETC1 alpha通道 让游戏运行更流畅

感谢halx99的贡献,Cocos2d-x 支持ETC1 alpha通道,帮助开发者降低纹理占用,从而减少内存占用,让游戏运行更为流畅。

要想使用ETC1 alpha通道,必须在相同目录下提供xxx.pkm和xxx.pkm@alpha,代码使用方法如下:

auto sprite = Sprite::create("xxx.pkm");

引擎会自动去加载xxx.pkm@alpha作为alpha通道数据。更详细的使用方式请参考tests/cpp-tests/Classes/SpriteTest/SpriteTest.cpp里的Sprite1ETC1Alpha测试例子。

图中蓝色部分就是带alpha通道的ETC1图片

集成AnySDK 实现一站式发布

AnySDK为CP商提供一套第三方SDK接入解决方案,整个接入过程,不改变任何SDK的功能、特性、参数等,对于最终玩家而言是完全透明无感知的。支持的第三方SDK包括渠道SDK、用户系统、支付系统、广告系统、统计系统、分享系统等。

可以通过Cocos包管理器集成AnySDK:

cocos package import anysdk -p PROJECT_PATH --anysdk

注:此版本的Cocos包管理器仍为预览版,后续我们会持续优化改进。

PROJECT_PATH是游戏工程的根目录,比如COCOS2DX_ROOT/tests/cpp-empty-test。通过上面命令后,AnySDK框架就集成到了游戏项目中,可以在代码里调用AnySDK接口接入各种第三方SDK了。AnySDK的详细介绍和使用方法请参考AnySDK官网。

AnySDK官网:http://www.anysdk.com/

增加VR插件 集成更为便捷

Cocos2d-x v3.13 目前支持了GearVR、Deepoon、Google Cardboard And Daydream和Oculus,其他SDK也正在陆续添加中。具体的使用方法可以参考以下的项目指引手册:

http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/vr-plugin/zh.md

Canvas脏矩形算法:提升效率,减少发热

在v3.12中我们通过重构WebGL渲染器大幅度提升了Web引擎的性能,在这个版本中,我们又实现了脏矩形算法来提升Canvas渲染器的性能。脏矩形算法允许引擎只渲染当前帧中和前一帧不同的区域,而不是渲染整个画布,大大降低填充率,可以同时带来渲染效率的提升以及CPU使用率和耗电量的降低。对于相对静态的游戏画面来说,非常有效。这个功能默认是关闭的,开启它可以通过下面的代码:

// 开启脏矩形算法

if (cc._renderType === cc.game.RENDER_TYPE_CANVAS) {

    cc.renderer.enableDirtyRegion(true);

    // 设置允许用脏矩形算法进行局部渲染的最高脏矩形数量

    cc.renderer.setDirtyRegionCountThreshold(6);

}

// 检查脏矩形算法是否开启

var enabled = isDirtyRegionEnabled();

支持Android 64位应用

该版本提供了Android 64位的第三方库,因此可以编译出64位的Android应用。可以使用如下命令编译、运行64位Android程序:

cocos run -p android --app-abi arm64-v8a

Android切换回gcc 4.9

Cocos2d-x 3.12时使用了clang编译器,结果发现了崩溃问题。通过测试发现该问题是由于使用clang + gnustl_static造成的,因此该版本切换回使用gcc 4.9。当c++_static稳定后再切换成clang。

CURL升级到7.50.0

CURL 7.50.0解决了在NAT64环境连接IPV4地址格式的IP地址错误问题,Cocos引擎也第一时间响应并即时跟进升级了CURL版本。

其他改动

完整版改动列表: https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG

收起
3.12
07 Jul 2016

亮点功能

  • 支持VR
  • 支持Tizen平台
  • 在某些Android设备的渲染性能提升
  • Cocos2d-JS在在WebGL模式下的性能提升
收起
3.11.1
27 May 2016

新特性

  • [3.11.1] 支持IPV6-Only网络
  • [3.11] Chipmunk升级到v7.0.1
  • [3.11] JSB使用新的内存模型,在JS脚本不需要关心对象的生命周期,该特性默认关闭
  • [3.11] CURL升级到v7.48
  • [3.11] OpenSSL升级到v1.0.2g
  • [3.11] 可以使用VSCode或者新版本的Firefox调试JSB程序
  • [3.11] 全面升级 WebGL 渲染器

详细介绍

JSB的新内存模型

使用新的内存模型后,开发者不需要关心对象的声明周期。这就意味着不需要在JS代码里手动调用retain/release函数。

不过该内存模型默认是关闭的。虽然我们已经做了很多的测试,目前没有发现任何问题,但是保险起见,你需要手动开启该功能,开启的方法是在base/ccConfig.h里把CC_ENABLE_GC_FOR_NATIVE的值改为1:

    #ifdef CC_ENABLE_SCRIPT_BINDING
    #ifndef CC_ENABLE_GC_FOR_NATIVE_OBJECTS
    #define CC_ENABLE_GC_FOR_NATIVE_OBJECTS 1 // change to 1
    #endif
    #endif

OpenSSL

Cocos2d-x已经把OpenSSL升级到1.0.2.g

2016年7月11日开始,Google Play将不再接受使用低版本的OpenSSL的新应用程序或者应用程序更新。更新程序中使用的OpenSSL版本变得十分重要。更详细的信息可以参考这个帖子

如果你使用的是v2.x或者低版本的v3.x引擎,那么你可以只更新CURLOpenSSL,具体步骤如下:

  • 修改Cocos2d-x root/external/config.json文件中的version字段。如果是v3.x的话,那么version字段的值改为v3-deps-92,如果是v2.x的话,那么值是v2-deps-5
  • 在Cocos2d-x根目录下执行download-deps.py脚本
(jtsm @ 15 ~) $ cd cocos2d-x

(jtsm @ 15 ~/cocos2d-x) $ ./download-deps.py

=======================================================
==> Prepare to download external libraries!
==> Ready to download 'v3-deps-92.zip' from 'https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-92.zip'
==> WARNING: Couldnt grab the file size from remote, use 'zip_file_size' section in '/Users/jtsm/Chukong-Inc/cocos2d-x/external/config.json'
==> Start to download, please wait ...
==> Downloading finished!
==> Extracting files, please wait ...
==> Extraction done! ==> Copying files...
==> Cleaning...

有任何问题可以在引擎的中文论坛上发帖反馈。

Cocos2d-x JSB程序调试

v3.11版本之前,不能使用Firefox 30+版本来调试cocos2d-x JSB程序。这个版本修复了该问题,同时支持了web console功能。如果你不了解如何使用Firefox调试cocos2d-x JSB程序,可以参考[这篇文档]

当然你也可以使用VSCode来调试,具体的使用方法参考这篇文档

全面升级 WebGL 渲染器

在v3.11中,为了提升性能,我们重构了WebGL渲染器,下面是几项重要的改进:

  1. 在 Android 浏览器上默认开启 WebGL(支持的话)
  2. WebGL 模式下自动批处理 Sprite
  3. Sprite 共享全局的渲染数据缓存,并减少 GL 函数调用

在这些优化后,与旧版本相比,合并贴图后的游戏中draw call数量将得到显著的降低。不仅如此,v3.11中的CPU使用率和内存使用也都得到了降低。在我们的bunnymark测试中,v3.11相比之前的版本有4倍以上的渲染性能提升。当然,这是我们对WebGL渲染器做的第一步升级,在后续版本中,WebGL渲染器还将得到持续优化。

其他改动

更完整的改动列表可以阅读full changelog

收起
3.10
18 Jan 2016
  • 【新增】Cocos2d-x与Cocos整合升级为Cocos引擎,一次安装引擎编辑器全搞定。
  • 【新增】Cocos引擎支持新建Cocos2d-x预编译库和源代码项目。
  • 【新增】Cocos引擎整合第三方服务接入工具AnySDK,打通游戏开发到上线全流程。
  • 【新增】文档中心,整合Cocos2d-x Programmers Guide,API文档,Cocos Studio用户向导。
  • 【新增】商店系统,获取丰富的游戏开发资料以及资源更容易。
  • 【新增】问题反馈系统,问题直通引擎组,回复快速准确。
  • 【新增】Label新增三种overflow:CLAMP,SHRINK,RESIZE_HEIGHT。
  • 【新增】Lua 插件扩展的输出接口 ccslog ,可以输出信息到 Cocos 的输出区。
  • 【优化】重构Scale9Sprite,内存占用更少,Scale9 Loading Bar可以使用了。
  • 【优化】全面完善JSB内存使用,增强了引擎的稳定性,大幅度精简绑定代码以

符合Spidermonkey的GC标准
  • 【修复】ListView嵌套ClippingNode显示错误的问题。
  • 【修复】PageView继承至ListView,PageView可以添加任何widget作为子控件。
  • Win-MD5码:41bf763f8cd4030979a58c4d67c0de8a
  • Mac-MD5码:d97e8e9b5f369541252e52fb551a7213
收起
3.9
13 Nov 2015

增强3D功能

  • 【新增】3D MotionStreak,支持拖尾效果。
  • 【优化】Sprite3D支持材质系统

增强2D功能

  • 【新增】增加脚本组件系统
  • 【新增】增加帧回调函数和动画回调函数
  • 【优化】使用Component重构2D物理组件
  • 【优化】EditBox:优化iOS和Win32平台的实现,统一与Android平台的表现
  • 【优化】移除AssetsManager, AssetsManagerEx和Downloader对curl的依赖
  • 【优化】优化粒子性能

其他

  • 【新增】JSB,Action支持继承,重写update函数
  • 【优化】Web引擎的ScrollView性能优化
  • 【优化】Web引擎九宫格精灵性能优化
  • 【优化】H5 分离并整理setTexture和updateColor的耦合
  • 【新增】支持Xcode 7和iOS 9真机调试发布
收起