AS 3是否能够支持600 +旋转图像的游戏?

时间:2013-07-16 03:07:00

标签: actionscript-3 flash actionscript flash-builder

我制作了一个简单的游戏,其中正方形收集晶体并将它们带到基座并复制。它们只是旋转和移动的.png图像,但当它们的数量大于500时,游戏开始出现滞后。在Java中,我能够用30,000个单位做类似的事情。我可能做错了什么或Flash是不是那么有能力?

我正在使用Flash Builder。 我得到这样的图像:

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

然后我将redImg传递给"单位"采用" Bitmap"的实例的类 我改变了"旋转"和每个框架的x,y成员。

我在这里做错了吗?

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

Daniel的回答是正确的,因为您应该使用Stage3D API来获得更好的性能。但他没有提到你应该认真考虑使用Starling,它使用更容易使用的类包装Stage3D API:

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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