0

我做了一个简单的游戏,方块收集水晶并将它们带到基地并复制。它们只是旋转和移动的 .png 图像,但是当它们的数量大于 500 时,游戏开始滞后。在 Java 中,我可以用 30,000 个单位做类似的事情。我可能做错了什么还是Flash没有那么强大?

我正在使用 Flash 生成器。我得到这样的图像:

[Embed(source="../lib/red.png")]
public var redImgClass:Class;
public var redImg = new redImgClass();

然后我将 redImg 传递给一个“单元”类,该类接受一个“位图”实例,我每帧更改它的“旋转”和 x,y 成员。

我在这里做错了吗?

4

4 回答 4

2

您没有使用 Stage3D。如果您使用 Starling、ND2D 或编写自己的 Stage3D 包装器,您将能够获得更好的性能。

也可以看看 Jackson Dunstan 的博客,这篇文章特别有帮助:http: //jacksondunstan.com/articles/2279

于 2013-07-16T03:34:36.400 回答
1

Daniel 的回答是正确的,因为您应该使用 Stage3D API 以获得更高的性能。然而,他没有提到您应该认真考虑使用Starling,它使用更易于使用的类包装了 Stage3D API:

于 2013-07-16T04:00:36.843 回答
1

另一个可能的答案是使用 blitting,即使用单个Bitmap对象在 via 上绘制所有内容copyPixels()。这需要将您的旋转水晶 PNG 复制到一系列旋转图像中,然后您可以使用这些图像而不是直接更改rotation属性。这种方法对性能更加友好,并且不像 Stage3D 那样依赖显卡性能。

于 2013-07-16T04:21:10.410 回答
0

Starling 是您正在寻找的 ( http://gamua.com/starling/ )

于 2013-07-17T14:00:26.513 回答