2012-03-19 80 views
1

我的類RPG遊戲有隨機戰鬥。當玩家進入隨機戰鬥時,我的遊戲需要加載該戰鬥中使用的紋理(動畫怪物,動畫等)。紋理相當多,而且相當大(戰鬥非常強烈)。加載紋理時的動畫屏幕

這樣的過程消耗大量時間。當它加載時,整個屏幕凍結

遊戲的地圖會暫停,等待時間是顯著 - 我個人覺得這惱人。

我買不起,因爲,做一些數學後,我意識到預加載紋理

  • 如果我預裝在遊戲開始時所有的紋理,應用程序肯定會崩潰。
  • 如果我預裝了在特定的地圖中使用時,玩家進入地圖紋理,應用非常有可能崩潰,以及。
  • 我只能買得起,當我需要他們來加載紋理,並且一旦戰鬥結束他們的處置。

我更喜歡,因爲它影響了我的遊戲的設計和概念,不使用「加載屏幕」的形象。我想避免這種方法。

如果我可以做一些動畫載入紋理,這將是巨大的,這導致我的問題:這可能嗎?你問什麼樣的動畫?那麼,怎麼樣......你還記得最終幻想在顯然加載紋理時用於扭曲屏幕嗎?類似的東西。但是,扭曲也是一個相當耗時的過程,所以也許只是一個很酷的逐幀動畫或其他東西。

在寫這個,我意識到,我可以做小的停頓紋理之間(有多個紋理),和這樣的暫停期間,我更新屏幕代表動畫的狀態。然而,這是不太可能發生的,因爲每個紋理都是2048x2048,所以動畫會以相當緩慢(和煩人)的速度刷新。我寧願避免這種情況。

回答

0

由於戰鬥應該是隨機的,有可能預加載紋理並將其戰鬥發生之前,接下來的戰鬥?然後,只要加載完成,戰鬥就可以開始。

  1. 博弈決定戰鬥應該很快發生
  2. 生成隨機相遇(怪物/背景的/ etc?)
  3. 的遭遇
  4. 啓動紋理已加載後會遇到負載紋理

戰鬥仍然是隨機的,只是在用戶意識到戰鬥即將發生之前就已經確定了相遇。

+0

但即便如此,我不得不加載這種戰鬥所需的紋理。如果遊戲決定「即將發生戰鬥」,它將不得不開始加載紋理。但如果這樣做,遊戲將會凍結並滯後。更糟糕的是,因爲玩家不知道爲什麼會發生這種情況。 – Voldemort 2012-03-19 00:58:22

+0

@Omega:您無法在後臺線程上加載紋理? – Coeffect 2012-03-19 01:00:02

+0

這是我不知道的。那會是怎樣的呢? – Voldemort 2012-03-19 01:05:22

0

你可以先加載較低分辨率的紋理,並在後臺線程(的NSOperation我認爲)揭開序幕,負荷較大的紋理,並在完成時「交換」他們。

至於動畫,很多遊戲通過加載小紋理當玩家遠離開始,越靠近,更高清晰度的紋理會「淡出」在

1

在類似的困境,我選擇了

  1. 將我所有的動畫紋理轉換爲壓縮的PVR。加載時間(取決於設備)提高了2到4倍。任何由轉換爲PVR引起的人爲因素在運動中都不明顯。
  2. 我預加載了空閒的動畫(幾乎總是打開,除了在技能使用或傷害時),我在戰鬥場景淡入時做了這個,我以50毫秒的跳動速度控制淡入,每一幀我都會預熱一個空閒空間(最多有8個,他們需要20個左右)。當一個動畫成爲聯合國需要,我卸載它。另外,「傷害」動畫過程中,我預取下技能動畫。有趣的

負荷。祝您好運與您的遊戲。

ps。不要相信模擬器的實際響應時間。快速轉到設備以確定您是否確實存在性能問題。

pps。關於第1點,導致我的應用程序顯着減小尺寸。