2013-11-21 69 views
1

我試圖做一些簡單的Flash遊戲,但在我開始向遊戲中發佈大量字節的數據之後,最好從專業編程人員尋求智慧,因爲我是全新的AS3。Flash遊戲簡單性能技巧

第一個問題是:什麼是加快遊戲速度的最佳方式? 因爲帶寬對我來說有限,加載Flash遊戲需要一些時間我正在儘可能快地開始遊戲,並在遊戲過程中加載其他材料。我在很多Facebook遊戲中看到了這一點。

第二:如何保持內存使用率低? 您是否建議您在舞臺出來時立即從舞臺上刪除已加載的圖像/電影剪輯?這是否會降低內存使用量?如果我再次加載刪除的對象,它使用加載的對象還是開始再次從源文件夾下載它?

第三:將材料加載到客戶端PC的技巧是什麼? 我看到很多臉書遊戲需要一些時間來第一次加載,但第二天它的加載就像它的數據存儲在硬盤上一樣。我必須做些什麼或Flash Player自動執行?

4th:有沒有辦法在播放時將圖像/電影剪輯加載到Flash播放器中?我的意思是,如果遊戲級別是電影剪輯,並且玩家正在玩第一級別,則遊戲繼續加載下一級別,然後按代碼的要求將它們加入舞臺。

請帶我帶你的經驗。

+1

這個線程是一個很好的資源,如果你正在尋找AS3的所有性質的性能提示:http://stackoverflow.com/questions/8380789/what-are-the-major-performance-hitters-in-as3-除了渲染矢量 – prototypical

回答

2

這些技巧並不簡單,但是,這一切都是可能的。

  1. 「最好」的方式來加載遊戲速度是虛構的,你無論如何都會至少需要爲了玩遊戲要加載的主要遊戲代碼。如果你的等級非常高,是的,你可以在實際加載遊戲後加載等級。您也可以用相同的方式加載音樂。爲此,您需要一個單獨的SWF或一組URL來獲取這些信息,並且在您的遊戲完全加載(沒有聲音,關卡或任何您能夠放在一邊的地方)之後,您啓動一​​個異步加載請求(使用Loader類這個),並且在它完成後,您將能夠播放一個聲音或一個級別,或者一組聲音或級別,具體取決於您如何組織外部資產存儲。

  2. 簡短的回答是「減少,重用,回收」,也就是說,您最好將大型資產(比如BitmapData類的實例)存儲爲單個對象,並使用引用來顯示大量副本它貫穿整個遊戲。你最好多次使用一個對象,比如說一個彈出一個並過期的子彈,碰到東西,錯過並離開屏幕等等,都可以被告知「在這裏返回,這裏是你的新參數」,並且對象不會被浪費。其他技巧也是可能的。

  3. 這是Flash播放器或瀏覽器的自動操作,稱爲「本地緩存」。如果您從網址請求某些內容,則該請求將傳遞給瀏覽器,該瀏覽器在下載後存儲本地副本以供將來參考。存儲空間仍然有限,如果存儲時間過長,副本可能會「過期」,這會使瀏覽器重新下載URL內容。 Flash播放器使用瀏覽器的URL檢索,因此本地緩存適用於SWF或其他類型的數據。

  4. 您可以設定元數據級別,即通過任何可能的方式下載一組不同的數據,然後解析該設置,通過代碼創建所需的MovieClip(或Sprite),填充所有資產進入它在預期的位置,並與此一起去。元數據可能相當大,可以作爲任何其他文件放在別處,您可以通過互聯網共享並通過URL下載。使用Loader類來調用URL並從網絡中獲取數據,設計一種方法來正確存儲元數據,並在設計遊戲時設計一個生成器+解析器來管理這些級別。

希望這會有所幫助。

+0

謝謝 我的遊戲實際上是一些空的影片剪輯,使用一個加載器來填充和替換,所以我想我會很好的加載它。 我將不得不更多地關注元數據難題。^_ ^ –