目前我有一個SKTextureAtlas太大,無法快速加載。它包含我遊戲中所有敵人的紋理。我想分解地圖集,所以遊戲只加載一定水平所需的紋理。然而,一些敵人出現在多個層面。我應該如何拆分地圖集?我不想爲每個關卡創建一個地圖集,因爲我必須爲重複的敵人重複圖像文件,並且在有很多關卡時會變得很煩人。有沒有更優雅的方法?在遊戲中爲多個關卡分割SKTextureAtlas的最佳方式是什麼?
1
A
回答
0
一個好的方案是,當整個關卡的屏幕上所有可見的精靈都進入相同的紋理圖集時。在這種情況下,Texture Atlas被加載到GPU中並保持在那裏。 在每一幀期間,CPU只需要通知GPU關於每個精靈的座標/位置/轉換,節省大量的數據傳輸。
我知道這可能會迫使你複製一些精靈,因爲它們中的一些可用於多個級別。只有你(作爲你的遊戲的開發者)可以採用的東西。
當你創建一個紋理圖集,你想罷工收集太多的紋理或太少之間的平衡。如果您使用的圖片太少,則SpriteKit可能仍需要許多繪圖工具才能渲染幀。如果包含太多圖像,則可能需要將大量紋理數據一次加載到內存中。由於Xcode爲您創建地圖集,因此您可以相對輕鬆地在不同的地圖集配置之間切換。因此,請嘗試使用紋理地圖集的不同配置,並選擇能夠提供最佳性能的組合。
+1
謝謝!我在使用紋理圖集的時候忘記了spritekit的渲染效率,所以看起來每個關卡都有一個走向。 –
相關問題
- 1. 在Flash遊戲中管理遊戲關卡的最佳方式是什麼?
- 2. 保存遊戲得分的最佳方式是什麼?
- 3. 在C#.NET中製作遊戲的最佳方式是什麼?
- 4. 爲FPS遊戲編寫XNA遊戲服務器的最佳方式是什麼?
- 5. 管理遊戲中子彈的最佳方式是什麼?
- 6. 在Silverlight中分割圖像的最佳方式是什麼?
- 7. 測試iPod Touch的iPhone遊戲的最佳方式是什麼?
- 8. 什麼是創建新遊戲的最佳方式! 2.1模塊?
- 9. 什麼是訪問瑣事遊戲數據的最佳方式
- 10. 什麼是組織遊戲模塊的最佳方式
- 11. Android:實現遊戲板的最佳方式是什麼?
- 12. 存儲遊戲數據的最佳方式是什麼?
- 13. 什麼是保存遊戲狀態的最佳方式?
- 14. 在XNA中保存遊戲的「最佳」方法是什麼?
- 15. 爲關鍵字提取任務分割句子的最佳方式是什麼?
- 16. 爲了獲得最佳性能,Android遊戲的最佳格式是什麼?
- 17. 什麼是在運行時徹底禁用每個遊戲的最佳方式?
- 18. 在遊戲中適應不同屏幕尺寸的最佳方式是什麼?
- 19. 在Flash中渲染HD(1080p)動作遊戲的最佳方式是什麼?
- 20. 在rails中設置多個多對多關係的最佳方式是什麼?
- 21. 在Unity檯球遊戲中實現多人遊戲的最佳方法是什麼?
- 22. 什麼是在現有的3D引擎上構建遊戲的最佳方式
- 23. 多人遊戲的最佳方法
- 24. 在cocos2d遊戲中實現關卡的最佳做法
- 25. 在iPhone上存儲遊戲數據的最佳方式是什麼?
- 26. 在Java中開發遊戲的最佳軟件包是什麼?
- 27. 爲iPhone製作紙牌遊戲的最佳框架是什麼?
- 28. 在android中執行多個listviews的最佳方式是什麼?
- 29. 您認爲分割多光譜航拍圖像的最佳方法是什麼?
- 30. SpriteKit - 組織保存的遊戲數據的最佳方式是什麼?
爲什麼你會在這種情況下使用地圖集?圖集的全部內容是聯合圖像。只是不要使用地圖集,你不需要分割圖像。 – MoDJ
單獨使用圖像效率不高,因爲SpriteKit會爲每個紋理執行渲染過程。 –
我看到在以60 FPS將多個OpenGL紋理合成到同一幀中時,沒有任何問題。也許在GPU和CPU具有不同內存空間以及需要從一種內存轉移到另一種內存的Mac上,運行時性能明顯不同,但在iOS上使用Atlas似乎與性能幾乎沒有關係。 – MoDJ