News:Starling1.2
原文:http://gamua.com/blog/2012/08/starling-12/
Starling文站翻译整理。
在过去的几个月中,我们的“红色小鸟”(指Starling,因为Starling的LOGO是一只小鸟---译者注)已经得到了很多指引。已经有大量的基于Starling的游戏发布了,其中就包括很多知名公司,比如Zynga(星佳)。而且现在您可以通过网上的视频教程来学习Starling。看,小鸟已经出现在好几次开发者大会上。
目录 |
性能优化
是的,我知道:性能不代表一切。但是,如果Starling可以更快地渲染,您必须花在代码优化上的时间就越少。所以您听到这个消息一定很高兴:新版本的Starling比以前要快50% !
怎么证明?您还记得在Starling的体验项目中,有一个基准测试?在之前的版本中,在iPad 1上可以运行690个对象。现在这个数字是1080 !(免责声明:将纹理调整成了32*32像素,否则iPad的填充率会限制它的渲染效率)
此外,我删除了很多的临时对象分配。这意味着,垃圾回收器不再做大量的工作,从而保持您的游戏可以运行在稳定的帧频上。
这些优化的建议和想法来自Starling社区。我在论坛上,在GitHub上,以及从Zynga公司,收到了很多来自用户的真正有用的建议,非常感谢大家的参与!
增强的事件系统
传统的Flash事件系统一直饱受批评,很多人认为它会导致对象过度分配:毕竟每次派发一个事件,就意味着要创建一个新的"Event"的实例。
Starling现在对事件系统做了一些微调:
- 提供一个新的方法来派发事件,"dispatchEventWith",Starling在屏幕背后用对象池缓存了这些对象。这样可以避免产生过多的事件对象。
- 标准事件类增加了一个新的"data"属性,可以用来附加任何类型的数据,这样您可以避免经常生成新的Event子类。
- 事件处理方法现在可以拥有零个,一个或两个参数。如果您不需要事件对象,为什么必须要接受它呢?而两个参数的版本,则可以让您更方便的访问"data"属性。
Starling WIKI上已经包含了一个详细的教程来描述这些变化:增强的事件系统。别忘了更新代码!这是我在Starling 1.2中我最喜欢的特性之一。
约束模式
Flash Player 11.4 和 AIR 3.4 (当前仍处于Adobe实验室中),介绍了“Stage3D约束模式”。它允许Stage3D在更多的计算机上实现硬件加速(值得注意的是,现在流行的Intel GMA芯片组已经被支持了)。这个介绍里也包括了对着色和纹理的一些限制,但Starling可以轻松应对。
出于这个原因,现在约束模式是Starling的默认设置 -- 这将可以让您的游戏运行在更多的用户电脑上,而不必改任何一行代码。
顺便说一句,您仍然可以使用"Baseline"模式(这是以前的Starling的默认值)。如果您的游戏代码在新的约束模式下不起作用(比如因为您写了复杂的着色器代码),可以利用Starling构造方法中新增的参数来回归传统模式。
与其他的Stage3D框架集成
Starling现在可以和其他Stage3D引擎协作了,比如Flare3D或者Away3D。这意味着,您可以利用Starling来为您的3D游戏创建2D的用户界面 !
关于这个功能的更多消息:
- 关于和Away3D的整合可以看看这篇文章,或看看来自Lee Brimelow的视频教程。
- 和Flare3D的整合可以看Flare3D WIKI。
倾斜
显示对象增加了两个新的属性:"skewX"和"skewY"。顾名思义,它允许您沿着X轴或Y轴方向倾斜对象。该功能的工作方式遵循Flash pro用户的习惯和期望。
其实,倾斜得到支持,是论坛中富有成果的讨论和GitHub中的请求共同推动的结果,感谢大家的参与!
更新的状态显示
这个功能不大但很有用:状态显示中增加了每帧的绘制方法调用次数。这将让您可以更容易的发现自己的性能问题,判断自己是否用正确的方式处理了显示列表。
此外,您现在可以使用 "starling.showStatsAt()",定义状态显示的位置。
更多
当然,这仅仅是介绍一些比较有趣的特性。除了上面所说的,新版本还包含了大量的错误修正和优化。当然,您可以从这里找到完整的更新日志。
您感觉新版本怎么样?我试图保持Starling的强项:轻量级且易于使用。所有新功能的添加不会导致任何膨胀或代码重复。最小的API体积等于最大的乐趣 !=)
翻译: 郭少瑞