2017-06-05 33 views
2

當我轉換到我的遊戲時,存在巨大的滯後,而且FPS下降非常低。我知道一個事實,那是因爲我的場景中有很大的圖像。圖像用於來自Assets的Skspritenodes。我正在循環一個場景。當玩家通過轉換到同一場景而失去遊戲重新開始。無論如何,我可以將圖像加載到內存中,並永久保留它們,而不是每次移動到gamescene時刪除和加載它們。如何在內存中加載文件以獲得更好的場景轉換?

如果您要建議紋理和圖集預加載。請具體說明如何以及在何處使用預加載代碼。還有如何設置地圖集紋理並使用它們。我已經嘗試過這種方法,不幸的是它不起作用。也許我做錯了。

謝謝

+0

可以在異步模式下加載場景,看到https://stackoverflow.com/questions/38601845/slow-skscene-transition/38730129# 38730129 –

+0

我試過了,但它不起作用。如果我不使用它,我會得到相同的結果。 – Yraw

+0

你什麼時候調用preloadGameScene()? –

回答

0

從註釋回暖,有多種方法分手加載。這是一個在我腦海中突然出現:

class Scened: SKScene { 

    var needsLoading = false 

    func loadChunk1() {} 
    func loadChunk2() {} 
    func loadChunk3() {} 
    func loadChunk4() {} 
    func loadChunk5() {} 

    override func didMove(to view: SKView) { 
    if needsLoading { loadChunk1() } 
    } 
    override func didEvaluateActions() { 
    if needsLoading { loadChunk2() } 
    } 
    override func didSimulatePhysics() { 
    if needsLoading { loadChunk3() } 
    } 
    override func didApplyConstraints() { 
    if needsLoading { loadChunk4() } 
    } 
    override func didFinishUpdate() { 
    if needsLoading { 
     loadChunk5() 
     // Disable loading after the last chunk: 
     needsLoading = false 
    } 
    } 
} 

enter image description here