在过去的一年里,我一直在研究等距城市建设者。到目前为止,除了松散的PureMVC克隆之外,我还没有使用任何框架。
我听说过Starling,但直到最近我才玩过它。 根据我的研究,性能提升是惊人的,但这迫使我更加严格地管理我的资源。
目前,我正在一次一个建筑物中出口建筑动画,大约16帧/ png。它们在Photoshop中通过脚本进行裁剪,调整大小和导出,然后在Flash中导入,然后作为swf导出,以便按需加载/预加载/后载。
每个建筑物的框架都太大了,无法用它们制作spritesheet。我相信它被称为地图集。
这些png然后在lock()和unlock()之间被激活。在走动的建筑物+演员之后,就是这样。
我不确定是否只使用starling.Movieclip用于建筑物,而不是加载pngs,我会用它的框架构建一个MovieClip符号。因此,甚至不需要眨眼。除非在Starling上添加bliting可以进一步提高性能。这将允许更丰富的功能,如粒子效果,也许一些照明。
谷歌并没有给我一个严厉的回答,因此我在这里问。
答案 0 :(得分:0)
谷歌没有提供直接的答案,因为没有这样的答案。这完全取决于你已经完成的事情,你已经掌握了多少知识以及你的目标是什么。
使用Starling既有益处也有缺点。您对资源的想法将完全改变。如果你真的拥有大量资产,那么将它们放入GPU将会非常缓慢。你必须从那里开始 - 了解Starling做了什么,如何管理资源以及为了在两者之间进行转换需要改变什么。
如果这不是一项艰巨而耗时的任务,那么您将获得一些性能优化。但这又取决于你当前的代码。在这种情况下,您当前的代码非常重要,好像它已经完美优化,您的收益不会那么多(但通常仍然如此)。
如果您需要定期切换图形或需要动态资源(例如图像),您必须记住,在谈论Starling和Stage3D时,上传到GPU是最慢的部分。
所以再一次,没有一个直接的答案。您必须考虑GPU内存和限制,GPU上载时间以及资产管理。您还需要考虑代码的构建方式以及如果您进行切换会产生任何影响(如果您的代码严重依赖于类似MovieClip的结构,包含所有框架和内容) - 那将很难为了你。我使用Stage3D进行的最棘手的事情之一是UI实现 - 几乎只有Feathers UI会花费你几周的时间来与之相处。
另一方面,Starling表现相当不错,特别是在移动设备上。我能够在一个沉重的UI应用程序上保持稳定的45fps,其中包含大量动态加载内容和旧iPhone 4S上的多个屏幕,我觉得这很棒。最新的移动设备最高速度为60fps。
由您决定,但我会建议您进行一些实验性的长期项目测试,然后开始将此方法应用于您的常规项目。我已经完成了在常规非常紧张的截止日期项目中使用它,这是一场噩梦。一切都很好,但我想我会心脏病发作 - 转换并不那么容易:)
答案 1 :(得分:0)
我建议使用DMT在运行时将矢量资源光栅化为Straling sprites,它也会保留你的DisplayTree!这意味着您仍然拥有Flash资产中的父/子关系。
DMT不会复制资源,只会将矢量栅格化为纹理图集一次(保存缓存)
你可以在这里找到它:https://github.com/XTDStudios/DMT