我正在iPhone上編程一個遊戲,並且我有一個想要動畫的圖像,請在位圖中說一個行走的人。位圖隨時間變化。如何有效地將位圖添加到屏幕/ UIView?如何在iOS中使用位圖/ rgb數據製作動畫
回答
你可以用CAKeyframeAnimation來做到這一點。
我只是寫了這個,並沒有測試它 - 但應該讓你在正確的道路上。將所有幀加載到NSArray中,然後將動畫的「值」設置爲幀數組。
NSArray *walkFrames = [[NSArray arrayWithObjects:
[UIImage imageNamed:@"walk.00000.png"],
[UIImage imageNamed:@"walk.00001.png"],
[UIImage imageNamed:@"walk.00002.png"],
[UIImage imageNamed:@"walk.00003.png"],
[UIImage imageNamed:@"walk.00004.png"],
[UIImage imageNamed:@"walk.00005.png"],
[UIImage imageNamed:@"walk.00006.png"],
[UIImage imageNamed:@"walk.00007.png"],
[UIImage imageNamed:@"walk.00008.png"],
[UIImage imageNamed:@"walk.00009.png"],
nil] retain];
CAKeyframeAnimation *anim = [CAKeyframeAnimation animation];
anim.keyPath = @"contents";
anim.duration = 2.f;
anim.values = walkFrames;
anim.calculationMode = kCAAnimationLinear;
anim.repeatCount = HUGE_VAL;
[myView addAnimation:anim forKey:@"myFlipAnimation"];
我的意思是在圖像上使用rgbdata並將它們快速上傳到屏幕 – Twinkle
這是使動畫式動畫動畫效果最好的方法(這就是您要求的方法)。當然,PNG圖像是RGB數據。你能解釋得更好嗎? –
如果你打算這麼做,爲什麼不直接使用UIImageView的animationImages屬性呢? –
加載圖像序列的最有效方法是使用PVR格式的圖像並將它們加載爲OpenGL紋理。 PVR圖像支持多種格式,包括原始的32位RGB數據。
我已經結束了在給你一個GLImageView並允許您指定的文件名,它會有效地流進記憶和順序播放列表庫此功能:
https://github.com/nicklockwood/GLView
退房包含的例子,看看它是否會滿足您的需求。該文檔包含以正確的格式創建圖像的說明等。
+1分享,ty! – Till
- 1. 如何在ios中製作carousal動畫?
- 2. 如何在ios中使用大精靈進行動畫製作?
- 3. 如何在iOS中使用CoreAnimation動畫製作CIFilter?
- 4. 如何在SVG中使用動畫製作圖像(使用CSS?)
- 5. 繪製位圖動畫不起作用
- 6. 如何使用畫布在位圖中繪製筆畫?
- 7. 如何在JuPyTeR中使用Plots.jl製作「動畫」更新圖?
- 8. 如何使用Python底圖更快地繪製地理定位的RGB數據
- 9. iOS - 如何製作動畫曲目
- 10. Android - 在畫布上繪製RGB位圖數據的最佳方式?
- 11. 如何使用滾動在IOS中製作列表視圖
- 12. 我可以在iOS中繪製和製作動畫,而無需使用位圖圖像嗎?
- 13. 如何使用Google圖表製作柱狀圖啓動動畫?
- 14. 我只想在iOS中製作動畫
- 15. CSS位置 - 如何製作動畫盒?
- 16. 使用動畫製作動畫在圓圈中填充動畫
- 17. 製作動畫課ios
- 18. 如何使用matplotlib動畫製作熊貓數據的散點圖
- 19. 如何使用css3製作動畫
- 20. 如何使用contourf()製作動畫?
- 21. 如何使用ReactCSSTransitionGroup製作動畫?
- 22. 如何在iOS中使用動畫顯示容器視圖?
- 23. 如何在iOS中高效地使用圖像動畫
- 24. 如何在ios中製作圓形動畫
- 25. 如何在IOS 10中創建動畫作爲iMessage的動畫?
- 26. 如何在android中爲應用圖標製作動畫?
- 27. 使用Javascript動畫製作圖案
- 28. 如何使用翻轉圖像,比例和位置製作動畫
- 29. 如何動畫位圖
- 30. 如何在PyQt5中製作動畫?
使用具有動畫功能的UIImageView(保存多個可尋址圖像)似乎是最微不足道的,並以這種方式實現了正確的解決方案。 – Till
使用UIImageView動畫的唯一問題是它必須一次加載內存中的所有動畫幀。這是我的GLImageView旨在解決的問題。當然,您可以使用線程將普通的PNG或JPEG傳輸到內存中,並編寫自己的基於計時器的動畫代碼,但設置起來很複雜,而且可能無法獲得30FPS,尤其是在較舊的設備上。 –