2011-08-15 42 views
3

我試圖在iPad上構建天氣應用程序,但似乎我需要一些動畫幫助。假設我正在製作雷達動畫,所以雷達源文件具有900x700像素大小的10個gif/jpeg圖片。我在這裏使用教程嘗試UIImage的動畫技術:Objective C iPad動畫與大圖像 - 使用什麼方法?

http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/

但似乎加載10張那麼大是太多了iPad來處理和崩潰,由於內存警告。我正在研究其他技術進行動畫製作,但我似乎無法找到能夠有效完成此操作的內容。

我看過其他像核心動畫使用精靈和Cocos2D與精靈。有人能指出正確的方向來製作這些大圖像的最佳方式嗎? (請記住,這些圖片是動態的,並且經常發生變化,因此必須在服務器上重新創建精靈並從iPad中獲取以進行動畫)。謝謝

回答

2

OpenGL只創建維度爲2的紋理。在您的圖像的情況下,這是1024x1024,這是每個圖像的兆內存。儘管如此,iPad應該不會有問題。

首先,調查使用Xcode的分析工具,以確保圖像不會被重複加載到內存在動畫的每一個循環(可能由不共享緩存紋理新對象的方式)。這可以從一開始就解決您的問題。

其次,我推薦使用Cocos2D,如果只是爲了便於處理紋理和緩存。將圖像投影到CCAnimation中,將其彈出到CCRepeatForever中,使用CCSequence運行它。當你完成擊中CCTextureCache釋放未使用的紋理。

第三,將動畫幀率降低到30或更低(如果僅用於此動畫)。它可能是iPad,但你在製作天氣應用程序。不是電子遊戲。

最後,降級您的圖像的大小。證明所有你想要的,但大型雷達動畫不會出售你的應用程序。而僅僅因爲一個網站可能已經被打的是精美的動畫,請記住,桌面比任何智能手機更大的內存和電源。

1

嘗試打破動畫圖像劃分成較小的部分,並通過將每個部件的精靈動畫那些代替。如果你主要使用的代碼(CoreGraphics中)和「手動」畫你的雷達,而不是僅僅使用圖像,好像他們是動畫GIF這將是最好的。