【发布时间】:2010-12-11 06:51:47
【问题描述】:
我正在制作一个包含大量图形/代码的多人 Flash 游戏。
我遇到了一些性能问题,例如天气效果。
就像我想知道在大型资源密集型游戏中使用位图图形还是只使用“矢量”(fla 中绘制的任何格式的 Flash 图像)图形更好? 虽然不担心预加载时间,但只担心游戏时的游戏性能
【问题讨论】:
标签: flash actionscript-3
我正在制作一个包含大量图形/代码的多人 Flash 游戏。
我遇到了一些性能问题,例如天气效果。
就像我想知道在大型资源密集型游戏中使用位图图形还是只使用“矢量”(fla 中绘制的任何格式的 Flash 图像)图形更好? 虽然不担心预加载时间,但只担心游戏时的游戏性能
【问题讨论】:
标签: flash actionscript-3
Flash 渲染原生 Shape/Sprite/MovieClip 非常适合用于少量简单动画,但如果您同时制作多个或复杂动画,它很快就会碰壁。
在您确定渲染是瓶颈(分析是您的朋友)的情况下,您可以通过在游戏中创建位图作为“视图”并使用 BitmapData 的 copyPixels 函数来 blit BitmapData 表示来获得更快的性能每一帧都将你的动画帧放入该视图中。
在我的最新游戏中,正是出于这个原因,我正在这样做。我正在获取所需的 MovieClips,通过使用 BitmapData 的 draw() 方法在加载时渲染帧(这有点慢),然后使用 copyPixels 在视图中绘制它们,逐步浏览它们的帧并缓存每个帧的 bitmapData 表示在运行时(非常快)。
当然,没有什么是免费的,所以你必须注意,在这种情况下你是在用 CPU 周期换取内存空间,如果你有很多长动画,你的应用程序的内存使用量会很快飙升。
【讨论】:
我认为“位图或矢量”没有一个通用的答案...这完全取决于您的游戏的具体条件和许多其他变量...也许您可以将其缩小到更具体的问题可以给出一些想法。
目前,我建议您检查有关 Flash Player 内部结构的信息,特别是有关它如何呈现图形和矢量的信息...然后对一些一般情况进行基准测试(大图形与大矢量等...)这样您就可以更好地了解在何处以及如何优化您的应用程序。
【讨论】:
对您的问题的直接回答在很大程度上取决于具体情况。然而,我最近遇到了BirdEye AS3 图形库,这可能是最有趣的。根据演示,它的性能非常好。您可能想使用它,或者至少从中学习。
更新:这是一个 Flex 库,因此如果您直接使用 Flash,可能不会感兴趣。
【讨论】: