我正在製作一個勝利狀態和失敗狀態的遊戲。對於每個州,我想顯示一個2-3秒的簡短動畫。第一個動畫由60個PNG組成,速度爲30 fps,第二個動畫由80個PNG組成,也是30fps。我已經嘗試了各種方法,並廣泛搜索了一個解決方案,但我一直髮現的前兩個結果是使用UIImageView animationImages和Core Animation。使用UIImageView在模擬器中工作得非常好,但需要永遠在設備上第一次運行。我認爲這是因爲圖像需要加載到內存中。我正在使用「imageNamed」來填充animationImages數組,但我猜他們需要在第一次調用動畫時渲染?我曾嘗試在應用程序加載時預渲染它們,並且這看起來有訣竅,但預渲染所有這些圖像需要近10秒,這不方便用戶使用。我也會開放使用核心動畫,但我對它的知識非常有限,所以詳細的解釋將不勝感激。謝謝!什麼是動畫iPhone上的圖像序列的最佳方式?
當你說我需要在應用程序啓動時加載所有內容時,你究竟是什麼意思?現在,我初始化動畫圖像的兩個數組時,應用程序加載,這樣的:
// Create thinnestAnimation Array
thinnestAnimation = [[NSMutableArray alloc] init];
for(int i = 1; i <= 60; i++)
{
UIImage *thinImage = [UIImage imageNamed:[NSString stringWithFormat:@"ThinnestJump_%d.png", i]];
[thinnestAnimation addObject:thinImage];
}
thinAnimationImageView.animationImages = (NSArray *)thinnestAnimation;
thinAnimationImageView.animationDuration = 2.0;
thinAnimationImageView.animationRepeatCount = 1;
thinAnimationImageView是我的接口一個IBOutlet,我打電話[thinAnimationImageView startAnimating];
當我想動畫圖像序列。這在第一次通話中嚴重滯後,但此後很好。無論如何阻止它第一次落後?
對不起,動畫的計算成本很高。蘋果公司儘可能地寫了UIImageView。用它。 – 2012-08-13 05:03:34
如果您已經預渲染了您只想依次繪製的幀,Core Animation將無法真正幫助您;對於涉及移動或轉換現有圖像(或一組圖像)和/或添加某些特殊效果的動畫而言更是如此。現在,如果您想要的視覺類型符合該描述,則可以使用CA而不是圖像序列。 – rickster 2012-08-13 05:26:55
你也可以看看你可以做什麼來優化你的圖像。他們有阿爾法?他們真的需要它嗎?屏幕的大面積是否會改變每一幀,或只是一小部分?視頻是否可以更好地發揮作用? – rickster 2012-08-13 05:28:04