我目前正在開發一個精靈套件的遊戲,兩個主畫面& B. A的位置之間滾動(0,0)和B位置爲(0,device_height)。平局計增加異常
大多數時候,在遊戲運行和60fps的平局計爲8或10 (與SKView::showsDrawCount
財產得到了)但有時候,僅有B屏幕上,數量異常增加吸引至70-80平!
這裏的一些事實:
- 我不刪除的畫面節點時,我展示的B,因爲一個節點繼續影響物理學。
- 我正在使用SKTextureAtlas,並且我爲了優化目的在字典中預加載了所有紋理
- 即使刪除了裝飾節點(粒子,背景),繪圖計數也會增加。
- 當錯誤發生時,非宰殺節點數量增加顯著(由
SKView::showsNodeCount
給出),但我真正的節點數(通過使用[node::children count]
遞歸發現)是穩定的。
是否有人遇到了問題,以及可以進行哪些優化?
我怎麼能有關於這些詳細信息即將看到他們在哪裏來的呢?
感謝
編輯:
剛剛發現了一些很有趣的。以下是隨着時間的推移處理器使用情況,在屏幕A和B之間切換。我們可以看到有一個特定的Thread-14,它可以做很多事情!
好吧,你必須問自己..與A屏幕相比,B屏幕有什麼不同?我在我的遊戲中遇到了主要的優化問題(我還有一些小問題)。只有這樣,我才能找出造成問題的原因是打開或關閉,並觀察性能。 – hamobi 2015-02-11 09:30:52
謝謝,這就是我正在做的事情:把事情打開和關閉......奇怪的是A和B之間沒有區別。[A B]只是一個SKScene,其高度是設備的兩倍。我懷疑spritekit cullig系統有一個缺陷,但這很容易說明它來自於sdk。 – Martin 2015-02-11 09:40:36
您是否在稍後刪除節點的情況下添加節點?也許發佈一些相關的代碼。它可能是很多東西 – hamobi 2015-02-11 09:41:47