2014-12-20 79 views
0

我正在嘗試創建一個「加載屏幕」來預加載所有的紋理。加載屏幕SpriteKit Swift提高幀率

我在GameViewController.swift如下:

class GameViewController: UIViewController { 

    var catAtlas = SKTextureAtlas(named:"[email protected]") 
    //And many more atlas 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    var textureAtlas = NSMutableArray() 

    textureAtlas.addObject(catAtlas) 


    SKTextureAtlas.preloadTextureAtlases(textureAtlas, withCompletionHandler: { 

      //Present Scene 

     } 

    }) 

} 

而在一個名爲Obstacles.swift類,這是在GameScene.swift實現:

class Obstacles { 

init() { } 


var catAtlas = SKTextureAtlas(named:"[email protected]") 


func catAnimation(){ 
    //Where catAtlas is used 
    } 

    } 

這樣的紋理存儲在RAM,但幀速率不會改變(沒有預加載,它是一樣的)。 如果我去做下面的幀速率惡化:

var pinataTextAtlas = GameViewController().catAtlas 

我在做什麼錯誤或我怎麼能解決這個問題?

謝謝! (Sorry for my english)

回答

0

如果看到由於在運行時加載紋理而導致幀頻下降,則預加載僅會提高幀頻。顯然這不適合你。

下面是一些可能的事情可以做,將它縮小:

  • 在設備上運行(模擬器performane是總是可怕)
  • 減少節點數目
  • 減少節點數目與物理實體
  • 減少同時/頻繁碰撞的物理物體的數量
  • 運行儀器來分析您的應用
+0

我在設備上運行(iPhone 4S iOS 8.1.2)將遵循您的建議。我會告訴你。 – link900420