我需要有一個像iPad視網膜屏幕一樣大的動畫,2048x1536,但是這個尺寸超過了最大尺寸,有沒有其他的方法可以製作一個很大的動畫? 我已經嘗試使用一些精靈和SKActions來實現相同的結果,但我想切換到SKTextureAtlas出於性能原因SkTextureAtlas動畫iPad視網膜?
回答
讓我們忘記一個事實,即您不能使用那麼大的圖像,並假設您使用一個較小的圖像(例如,2000x1500這將工作)。這有什麼缺點?
內存消耗
在同一圖像加載到內存大小爲2000x1500的圖像可以在存儲在磁盤上,但沒有任何實際的內存消耗可能只需20千字節或更小。爲了計算標準RGBA8888圖像所需的內存,則可以使用此:
width x height x bytes per pixel = size in memory
RGBA8888格式使用4個字節的每個像素(每個紅,綠,藍和alpha通道1個字節)如果做數學,你會看到每個2048x1536圖像都需要大約12兆字節的內存。很明顯,因爲memory is not unlimited resource,你可以很容易地遇到內存問題。
批渲染和繪製調用
另外,更重要的是有把這個大圖片到寰椎沒有真正的好處,並在必要時SpriteKit會分裂地圖集。例如,在10個2000x1500圖像的情況下,SpriteKit會將一個地圖集紋理分成十個地圖集紋理。渲染時需要10次繪製調用,並且使用地圖集的全部目的都被打敗。
解決方案
如果你真的需要那麼大的動畫,使用視頻,而不是圖像。這是由蘋果在SKVideoNode節的建議:
像任何其他節點,你可以把電影節點的任何地方 節點樹和雪碧套件內將正確渲染。例如,您可能會使用視頻節點爲一些視覺行爲製作動畫,這些視覺行爲會使用紋理集合進行定義,這些視覺行爲會很昂貴。
或者你可以嘗試以不同的方式製作動畫,例如。從動畫中移除靜態部分,並創建真正需要動畫的動畫。你也可以嘗試將動畫分成幾部分。
嘿,感謝您的回答,我遇到了我的遊戲的性能問題(可能是由於我的代碼錯誤,我不知道),所以我試圖減少精靈的數量,SKTextureAtlas將是37張圖片,你認爲使用4個更精靈比動畫更好更好? –
@carlb一般來說,SpriteKit能夠以60fps渲染數百個精靈,如果繪製調用保持在低位。但這是另一個話題,所以你應該問一個新的問題,例如(當前繪製調用,節點數,iOS,你正在測試的設備等)。這樣,有人可能會看到問題出在哪裏,並會給你最佳的解決方案,但正如我所說的,你必須提供比這更多的數據。 – Whirlwind
您將會更好地製作節點並對動畫進行編碼,在所有iPad 3和4硬件中,H264文件的渲染效果不會像整個iPad屏幕那麼大。你可以使用巨大的PNG,但應用程序的大小將是一個真正的問題。最好使用較小的視頻並將其縮放或使用節點構建動畫。 – MoDJ
- 1. iPad的視網膜發育
- 2. 僅支持帶視網膜圖像的iPad非視網膜
- 3. 視網膜上的非視網膜圖像iPad
- 4. Macbook視網膜撿起iPad視網膜媒體查詢
- 5. 瓷磚大小,視網膜與非視網膜,iPad vs iPhone
- 6. 應用程序圖標不適用於iPad視網膜和iPad視網膜64bit
- 7. 理想的iPhone/iPad和iPhone(視網膜)/ iPad(視網膜)圖像分辨率
- 8. 的UIImageView動畫和視網膜圖像
- 9. 視網膜上的核心動畫
- 10. UIView無法縮放到iPad視網膜
- 11. Cocos2d 0.99.5支持ipad視網膜顯示?
- 12. 視網膜iPad的具體CSS
- 13. Cocos2d,高清視網膜顯示器iPad
- 14. iPad視網膜着陸頁大小 - 2MB
- 15. 視網膜與非視網膜iOS
- 16. 非視網膜iPad應用程序在視網膜顯示屏上正常工作iPad
- 17. convertRect:toView:在iPad視網膜和iPad上的工作方式不同
- 18. 單獨針對iPad迷你視網膜和iPad Air 2
- 19. javascript代碼來區分ipad和ipad視網膜?
- 20. iPad 3視網膜顯示屏測試?沒有iPad 3
- 21. 如何將視網膜畫布轉換爲非視網膜顯示
- 22. 滾動動畫在mac書視網膜中不起作用
- 23. 視網膜移動網絡應用
- 24. 如果iPad圖像不存在,則視網膜圖像(@ 2x〜ipad)未加載(〜ipad)
- 25. 在視網膜上調用兩次Mac NSView動畫animationDidEnd MBP
- 26. UIPickerView視網膜3.5和4的底部動畫
- 27. CSS過渡動畫JANK W/Z-索引在Mac(視網膜)
- 28. 動畫影像不適用於視網膜屏幕
- 29. iPhone視網膜像素與iPad視網膜像素具有相同的物理尺寸嗎?
- 30. 在Xcode 5 iPad的推出圖像只接受視網膜或視網膜非但不能同時
在這個火災演示中可以看到一個工作示例:http://stackoverflow.com/a/38679128/763355 – MoDJ