Cocos2d-x v3.3-RC0 发布说明!

oschina
 oschina
发布于 2014年10月22日
收藏 8

我们很高兴地宣布Cocos2d-x v3.3-RC0发布了!

Cocos2d-x v3.3-RC0下载地址http://cn.cocos2d-x.org/download

关于v3.3各个版本的特性和改动的话,可以参考这篇文档

注意事项

lua

在新建工程时,引擎自带的lua文件会被拷贝到src/cocos目录下。这样开发者可以更好地管理所有的所有的lua文件。我们同时提供了cocos/init.lua用于加载引擎自带的这些lua文件,所以如果你是从旧的引擎升级上来的话,需要删除对这些自带lua文件的加载操作:

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”

luaj和luaoc比较特殊,它们不能和别的lua文件一样默认在cocos/init.lua中加载。因为加载这两个lua文件会返回一个对象,lua代码会使用返回的对象进行操作,所以需要替换对应的加载路径,具体修改如下:

require "luaj" -> require "cocos.cocos2d.luaj"

require "luaoc" -> require "cocos.cocos2d.luaoc"

兼容旧API的lua文件默认没有被加载上来,如果需要使用这些deprecated API的话,只需要修改src/main.lua的一行代码来启用:

``` -- 注释掉下面这行代码可以启用deprecated的API -- CCUSEDEPRECATED_API = true require "cocos.init"

```

wp8

如果希望使用Cocos2dShaderCompiler来预编译shader的话,需要使用VS2013 with update 3这个版本。


v3.3-RC0新特性

  • 3D:增加了光照,包括平行光、点光源、聚光灯和环境光

  • 新的音频系统支持增加Mac OS X和Windows的支持

  • Spine的runtime更新到了最新版本v2.0.18

  • 增加了Application::openURL(),用于打开一个URL链接

  • 增加了AssetsManagerEx,这个模块是之前的AssetsManger的增强版本

  • 增加了对Tiled Map Editor导出的新地图类型(staggered tile map)的支持

  • 增加了ClippingRectangleNode,可以用来裁剪矩形区域

  • Node的schedule/unschedule支持lambda表达式

  • plugin增加了对Facebook平台的支持,所有的Facebook的特性都支持了,不过这些API还需要和Facebook的工程师一起改进


新特性详细说明

光照

为了让3D物体看起来更真实,引擎在这个版本增加了光照支持。引擎总共支持4种类型光照:

  • 方向光

  • 点光源

  • 聚光灯

  • 环境光

方向光表示一个非常远的光源,投射的光线是平行的,通常用来模拟太阳光。

下面的代码可以在场景中添加一个方向光:

auto directionalLight = DirectionLight::create(Vec3(-1.0f, -1.0f, 0.0f), Color3B(200, 200, 200)); 
addChild(directionalLight);

添加的光源默认是开启的,可以通过下面的代码关闭该光源:

directionalLight->setEnabled(false);

你也可以给光源设置一个标记:

directionalLight->setLightFlag(LightFlag::LIGHT0);

这样只有那些灯光的mask与灯光的标记相与为非零值的3d精灵才能受灯光的影响。

点光源从空间中某点向四周均匀发射有限长度的光线,可以用来模拟向四周发射状的光源。

聚光灯从某点发射一个圆锥形状,可以用来模拟台灯,舞台灯等。注意,聚光灯比较消耗GPU计算时间。 
环境光,向四周发射光线,模拟一个屋子等的环境,说不清楚光线来自哪个方向,四周是均匀的。 
注意我们用前向光照渲染算法,光源的数量对计算性能有一定影响。你可以设置shader中支持的最大光源数目,并且把它放在一个配置文件中,如下:

<key>cocos2d.x.3d.max_dir_light_in_shader</key>
<integer>1</integer>
<key>cocos2d.x.3d.max_point_light_in_shader</key>
<integer>1</integer>
<key>cocos2d.x.3d.max_spot_light_in_shader</key>
<integer>1</integer>


Spine runtime

Spine runtime更新到了最新版本v2.0.18。这个版本的Spine runtime支持FFD(Free-Form-Deformation),可以让mesh自由变形。

Spine runtime更新了license,要求引擎不能改动任何源码,及时发现问题了也不能改,只能给它发pull request,所以大家不要再往引擎提交对Spine runtime的修改,我们不能合并。

新的Spine的测试例子可以参考tests/cpp-tests/Classes/SpineTest/SpineTest.cpp。


AssetsManagerEx

AssetsManagerEx是AssetsManager的增强版本,和AssetsManager相比,AssetsManagerEx有如下优点:

  • 使用一个配置文件,使得可以支持更复杂的升级操作

  • 使用多线程下载

  • 支持断点续传

详细信息请可以参考这篇文档


Application::openURL

你可以使用这个函数来打开一个URL链接:

Application::getInstance()->openURL("http://www.cocos2d-x.org/");


ClippingRectangleNode

ClippingRectantleNode是ClippingNode的轻量级版本。和ClippingNode相比,有如下优缺点:

优点

  • 不依赖深度缓冲池(stencil buffer),这样在Android设备会有更好地兼容性

  • 效率更高

缺点

只能裁剪矩形区域,不能裁剪不规则图形

auto clipper = ClippingRectangleNode::create(); 
clipper->setClippingRegion(0, 0, 200, 200); 
this->addChild(clipper);
auto content = Sprite::create("MyPicture.png"); 
... 
clipper->addChild(content);
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Cocos2d-x v3.3-RC0 发布说明!
加载中

最新评论(2

TomShine
TomShine
这个正在学习,引擎挺好
eechen
eechen
最优秀的2D手游引擎,虽然也支持3D手游开发,官方开发的CocoStudio也正在让Cocos2d-x能像Unity3D那样快速开发,另外还增加了脚本语言Lua和JavaScript的绑定,让开发更有效率。
返回顶部
顶部