2013-02-17 72 views
0

我正在創建一個應用程序,該應用程序表示具有動畫和交互區域的書籍頁面。有一個角色始終保持不變,但每個頁面都以不同的外觀呈現,因此我無法輕鬆重新使用這些框架。這個角色的翅膀,腿和眼睛都需要不同的動作。我想知道的是將他們從PSD帶入應用程序的最佳方式是什麼?我能想到的這兩種方法可以是:在Cocos2d中設置動畫角色

  1. 創建動畫的每一幀,然後循環通過它們的單獨的PNG(這將被組合成一個單一的子畫面圖譜)
  2. 分割字符到他們的部件,然後手動定位,旋轉,縮放並在應用中移動它們。

我正在考慮2點,主要的原因是,如果我做點1,那麼我將需要創建大量的動畫爲每個頁面的幀,也創造了他們全部的兩倍,以滿足正常的視網膜顯示器。

請讓我知道這是正確的方法可能是什麼,如果有什麼我應該記住。

謝謝

+0

如果您使用1,您能告訴您創建的動畫總數嗎? – 2013-02-17 09:07:13

+0

它可能會有3種不同類型的動畫,每種動畫都有2到4幀。這將在20頁的書中重複,因爲角色在每個姿勢中都有不同的姿勢,所以這將是大約180幀。還包括其他角色閃爍和輕微移動,它可能總共大約300幀。 – sparkdoo 2013-02-17 09:59:31

回答

1

選項1聽起來更可行。 300幀有點太多了,但是你不必同時把它們全部加載到內存中。將幀分成1024 * 1024的多個spritesheet,並確保同一動畫的所有幀位於單個spritesheet上。因此,在任何特定時刻,只有一個紋理會被加載到內存中,無論如何我認爲這是最小的。

你也可以做更多的優化,也許可以通過爲在不同姿勢中表現相同的事物創建單獨的動畫。例如,如果眼睛在不同的姿勢中閃爍完全相同,則可以停止爲每個姿勢創建單獨的幀,以便閃爍。只需取出眼睛(哎!),爲它們創建一個單獨的動畫,並將它放在角色的動畫節點上。

與選項2一起使用會造成不必要的複雜情況,無論是對於您還是糟糕的設備。

+0

感謝您的建議。我可能會按頁面分解它們,然後在每次翻頁時加載和卸載。 – sparkdoo 2013-02-17 23:10:39

+0

您可以進一步劃分較小的Spritesheet。實際上內存消耗2^x次。就像如果你製作一張尺寸爲400x80的紙張一樣。那麼消耗的內存將會是512x128,因爲這些內存是最接近2^x的。因此,請嘗試製作像512x512一樣形狀的Spritesheet,並僅在需要時使用它們。 – 2013-02-19 09:15:45