2013-07-16 30 views
0

我做了一個簡單的遊戲,其中廣場收集水晶,並把它們帶到基地和複製。它們只是旋轉和移動的.png圖像,但當它們的數量超過500時,遊戲開始滯後。在Java中,我可以用30,000個單位做類似的事情。我可能做錯了什麼,或者Flash是不是有能力?AS 3能夠支持600 +旋轉圖像的遊戲嗎?

我使用Flash Builder。 我得到的圖像是這樣的:

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

然後我通過redImg到「單元」類這需要更改它的「旋轉」以及x,y的成員的每一幀「位圖」 的一個實例。

我在這裏做錯了什麼?

回答

2

你沒有使用Stage3D。如果您使用Starling,ND2D或編寫您自己的Stage3D包裝器,您將能夠獲得更好的性能。

您還可以看看傑克遜Dunstan的博客,這篇文章是特別有用的:http://jacksondunstan.com/articles/2279

+1

哇,謝謝丹尼爾我難倒。這非常有幫助。我從現在開始肯定會使用Stage3d。 – Crowbar

+0

ND2D已經停產,所以請注意。 Adobe也支持Starling。 – Gio

1

另一個可能的答案是使用blitting,即使用單個Bitmap對象通過copyPixels()繪製所有對象。這要求將旋轉的水晶PNG複製到一系列旋轉圖像中,然後使用該圖像,而不是直接更改rotation屬性。這種方法更具性能,並且不像Stage3D那樣依賴於視頻卡性能。