2012-02-16 79 views
0

我正在開發一款使用flash CS5的ipad遊戲。當我在閃存或網絡瀏覽器中運行它時,它運行得非常順利,但是當我將它發佈到ipa文件並在我自己的ipad上運行時,它變得非常慢。由於我的遊戲有很多階段和角色,所以符號的數量可能會超過50個。這使得Flash文件超過100MB(但ipa僅爲11mb)。所有符號都在第1幀中導出。如何讓大型遊戲運行更流暢?

因此,我有一些想要了解的問題:

1)如果我使用預加載器並在第2幀中導出符號,我的遊戲運行會更順利嗎?當遊戲裝載足夠時,它是一個預加載器嗎?還是每個遊戲場景都需要?

2)Flash中開發的大型遊戲必須遵循的其他技術是否可以在低配置設備中運行? 3)爲什麼很多其他大型遊戲可以運行得如此順利,儘管它比我的包含更多的角色和背景?

謝謝你很多的幫助^^

回答

1

1)所有的預加載需要做的是顯示您的用戶的東西是怎麼回事,直到比賽開始。它不會影響遊戲性能。

2)是:您必須優化每項計算和每項資產以實現小內存佔用和快速性能。開始here

3)因爲他們花了很多的時間在2個)

在一個側面說明:這通常是一個好主意,有一個主要的遊戲循環,並做所有的計算在你的遊戲之前,邏輯單一的渲染步驟,而不是有很多獨立的時間軸。在渲染步驟中,您可以排除和/或最大限度地減少不可見或不完全可見物體的所有努力。

+0

thx u ^^你能解釋在大型遊戲的每個場景中預加載器的工作是什麼,因爲當遊戲開始時所有符號已經加載?這是我得到的最大困惑。 – 2012-02-16 14:16:36

+0

您不會在每個場景中放置預加載器。你只需要一次 - 直到遊戲完全加載才顯示。說實話:我甚至無法確定單文件預加載器能在iOS上工作。我不能說我到目前爲止都沒有見過;它通常只是閃屏。 – weltraumpirat 2012-02-16 14:29:27

+0

哦,對不起,我的評論錯了:「大」遊戲可能會加載視頻,地圖,紋理,遊戲數據。他們通常在可可中完成。 – weltraumpirat 2012-02-16 14:32:44

0

有幾件事情要記住:

  • 升級到Flash CS5.5
  • 使用的Adobe Flash 11.0
  • 使用AIR3.1 SDK
  • 發佈使用 「GPU」(不是CPU)
  • Object pooling
  • 嘗試使用盡可能多的位圖,矢量「更重」。
  • 僅在沿x移動物體 '的cacheAsBitmap'/軸和y軸
  • Alpha透明度,吃了你的CPU
  • 我提到Object pooling
  • 將FPS監視器附加到您的應用程序,以便跟蹤幀率下降。
+0

非常感謝你!這對我很有幫助:D如果你能想到其他提示,請告訴我,thx ^^ – 2012-02-16 16:23:24

-1

做你自己的忙,並溝閃光。用Objective C/C/C++編寫遊戲

即使Adobe和微軟也放棄了Flash for Mobile設備。我從來沒有Flash的仇敵 - 自從FutureSplash以來,我一直是「Flash開發者」,並且在適當的時候仍然使用Flash IDE,但在定位移動設備時不會使用Flash IDE。

+0

Adob​​e放棄閃存?當然,他們放棄了對手機Flash播放器的支持,但他們肯定不排除應用程序/遊戲開發。也許網絡開發的flash並不像以前那樣受歡迎。但閃光(空氣)仍然是網絡和手機遊戲開發的首選。我認爲Flash中的手機遊戲開發甚至會在未來幾年增長。 – basvk 2012-02-16 21:25:07

+0

OP正在討論爲ipad/iphone創建一個遊戲作爲ipa而不是桌面web使用。不可否認的事實是,Adobe和微軟HAVE放棄了Flash作爲移動設備的可行選擇。不適用於網絡(但),但絕對適用於手機。是的,Flash仍然是桌面設備網頁遊戲的最佳選擇,但對於手機遊戲來說,除非遊戲很簡單(即不是OP所談論的遊戲類型),否則它是一個非常糟糕的選擇。 – ader 2012-02-17 10:00:07

+0

我不是在說網絡,我是在談論移動。他們絕對不會丟棄移動設備的閃光燈。如果我沒有弄錯,他們越來越多地關注多平臺使用和移動閃存是其中的重要組成部分,因此AIR的更新。 – basvk 2012-02-17 10:33:15