大家好,我们很高兴地宣布:Cocos2d-x v3.3版本正式发布。
我们建议您使用NDK r10c或者更高的版本,因为它修复看部分存在于Android 5.0上的bug。
下载地址:Cocos2d-x 3.3
[size=5]1.v3.3亮点[/size]
[size=4]1.1 包大小[/size]
[list][li]模块化:由C++链接器自动减小包大小,简化至只有2个库,一个是C++,一个是Lua。[/li][/list]以lua-empty-test为例:
[list][li]libluaemptytest.so 在v3.2中有9.5M[/li][li]libluaemptytest.so 在v3.3中只有5.5M[/li][/list][size=4]1.2 性能[/size]
[list][li]添加了ClippingRectangeNode,更高效地用于矩形裁剪[/li][li]Renderer:添加了triangle command[/li][li]Cocos Studio Reader: 使用Flat Buffer处理数据格式[/li][/list][size=4]1.3 易用[/size]
[list][li]添加了一致性方法用于各平台设置GL上下文属性[/li][li]Node: schedule/unschedule 可以使用lambda函数[/li][li]在cocos2d::random(a,b)添加了C++11随机函数支持[/li][li]RenderTexture: 为saveToFile()添加了一个回调函数[/li][li]DrawNode: 添加了和DrawPrimitive一样的功能,同时DrawPrimitive标识为弃用[/li][li]在Android和iOS上添加了setKeepScreenOn()函数[/li][/list][size=4]1.4 增强[/size]
[size=3]1.4.1 底层框架[/size]
[list][li]在iOS和Android上添加了新的声音引擎[/li][li]为热更新功能添加了AssetsManagerEx[/li][li]Tilemap:支持staggered tile map[/li][li]Primitive:支持点,线,三角形的渲染[/li][li]SpriteFrameCache:支持使用plist文件中加载数据内容[/li][/list][size=3]1.4.2 UI[/size]
[list][li]添加Application::openURL()[/li][li]在iOS和Android上添加了WebView[/li][li]添加了ui::Scale9Sprite[/li][/list][size=3]1.4.3 3D[/size]
[list][li]3D光源:方向光,点光,聚光,环境光[/li][li]BillBoard[/li][li]Camera[/li][li]Reskin[/li][li]Attachment[/li][li]更好地支持FBX,新的fbx-conv工具[/li][li]AABB, OBB and Ray[/li][/list]下面的gif图展示了光的效果。你可以运行cpp-tests来查看其他模块的效果。

[size=3]
[/size][size=3]1.4.4 第三方库[/size]
[list][li]iOS和Android平台的Facebook SDK集成(在plugin文件夹中)[/li][li]更新Spine runtime到v2.0.18[/li][/list][size=3]1.4.5 平台[/size]
Android:支持Android ARM 64位,Nexus 9 测试通过
WP8:
[list][li]添加win8.1 univeral app支持[/li][li]更新至Visual Studio 2013 with update 3以使用Cocos2dShaderCompiler[/li][/list][size=5]2.文档[/size]
[list][li]3d文档[/li][li]facebook集成[/li][/list][size=5]3.3D游戏示例[/size]
我们制作了一个3d游戏示例,FantasyWarrior3D,用来展示怎样使用Cocos2d-x开发一款3d游戏。它使用的所有3d特性都是Cocos2d-x支持的。
这个游戏可以在单核1G Hz CPU的安卓设备上流畅运行。
[attachment=82740]
[size=5]4.注意[/size]
当创建一个新的lua项目的时候,所有的内部lua文件会拷贝到src/cocos目录。我们添加了cocos/init.lua文件来加载所有这些内部lua文件。你不必自己手动加载这些lua文件,因为cocos/init.lua是引擎默认加载的。所以,如果你想升级旧引擎的话你需要在代码中移除所有的这些代码:
<pre class="brush:lua; toolbar: true; auto-links: false;">require "Cocos2d"
require "Cocos2dConstants"
require "bitExtend"
require "DrawPrimitives"
require "extern"
require "json"
require "Opengl"
require "OpenglConstants"
require "CCBReaderLoad"
require "AudioEngine"
require “CocoStudio”
require “StudioConstants”
require “ControllerConstants”
require “ExtensionConstants”
require “NetworkConstants”
require “GuiConstants”
require “experimentalUIConstants”</pre>
luaj和luaoc比较特殊,它们不能在cocos/init.lua中被加载,因为它们会返回一个对象用于代码中,所以你需要像下面这样替换一下代码:
<pre class="brush:lua; toolbar: true; auto-links: false;">require "luaj" -> require "cocos.cocos2d.luaj"
require "luaoc" -> require "cocos.cocos2d.luaoc"</pre>
所有弃用API的lua文件默认不被加载,如果你需要使用这些弃用的API,你应该去掉src/main.lua中注释的这一行:
<pre class="brush:lua; toolbar: true; auto-links: false;">-- 去掉这行注释,用于使用弃用的API
– CC_USE_DEPRECATED_API = true
require "cocos.init"</pre>
[size=5]5[/size][size=5].更多信息[/size]
更多信息请参考:
[list][li]发布说明[/li][li]完整的更新日志[/li][/list]
如果您能够帮助我们测试这个版本,或者反馈bug,我们将不胜感激。感谢!
希望多平台没有像 3.3rc0 有那么多麻烦事~~ 希望cocos越做越好~
error: ‘;’ expected