椋鳥是一個全新的領域,因爲它使用的Stage3D。這意味着你必須重新考慮你的開發流程 - 所有東西都必須是紋理,所以有很多限制 - 你不能簡單地在你的Flash IDE中設計一個按鈕,給它一個名字並使用它。我並不是說這很糟糕,不,我只是說你必須明智,如果你沒有任何經驗 - 學習需要時間。
我想你是在做一些錯誤的計算。您說例如,如果屏幕上有30個貼圖,並且每個spritesheets有30個不同的貼圖,則會生成900個貼圖,這意味着您有30個貼圖和每個上有30個貼圖。這是你遊戲中的很多瓷磚,你確定嗎? :)
無論如何,常見的做法是使用spritesheet的每個瓷磚作爲一個單獨的。這就是爲什麼它被稱爲spritesheet。這個意思非常簡單 - 它將使用的記憶。想象一下你在一個spritesheet中有100個tile(爲了更簡單的計算),並且這個spritesheet是1mb。如果你將它拼接成更小的塊(其中100塊),它的尺寸也將接近1mb。所以如果你這樣做,並刪除原始的源,由於這些位圖將採取的RAM將接近原始。
然後你想要使用一個瓷磚(或者讓我們說你的地圖只是「水」,而你只使用一個瓷磚)。您可以實例化同一個類的許多實例,並且由於您只使用一種類型,因此要顯示的內存是原始1mb的1/100。
我的意思是說,最壞的情況是同時使用它們的總數爲100,而這將花費1mb的內存(我只是在討論圖片)。每次使用較少時,內存會減少。
使用蒙版的方法更糟糕,因爲即使使用單個瓦片,它也會將所有原始spritesheet放入內存中。單瓦 - 1mb。 和它還會繪製一個遮罩對象(Sprite),並且還需要預先計算該遮罩並移除位圖的外部部分。這是更多的內存,更多的CPU計算和更多的圖形渲染(因爲它會在每次實例化時繪製裁剪的位圖)。
我想這會給你一個想法,爲什麼它會這樣使用! :)如果你有一些奇特的區域,這就是你想要使用遮罩的原因,那麼使用一些spritesheet打包程序。它將爲您提供一個數據文件,用於描述所使用的spritesheet區域,並且對於單個類(有很多類),它將解析您的初始位圖,爲每個塊創建位圖子項並銷燬原始位圖。座標並不重要。
乾杯! :)
爲什麼不使用Starling框架?學習真的不難,通過使用GPU可以獲得最佳性能,並且可以解決許多這些紋理問題。 – Eduardo
通過bitmapdata提供的繪圖工具爲您提供了將Spritesheet的一部分複製到新位圖的選項。該過程不使用掩蔽。對於基於sprite的圖形,我強烈推薦Starling,它爲您提供工具,通過紋理和紋理圖集進一步簡化精靈圖表的工作。 – Marty
謝謝你們,我會檢查Starling。 :) –