加载屏幕SpriteKit Swift提高帧率

时间:2014-12-20 02:02:15

标签: ios swift sprite-kit

我正在尝试创建一个“加载屏幕”来预加载所有纹理。

我在GameViewController.swift中有以下内容:

    class GameViewController: UIViewController {

    var catAtlas = SKTextureAtlas(named:"cat@2x")
    //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:"cat@2x")


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

    }

这样纹理存储在RAM中,但帧速率不会改变(没有预加载也是如此)。 如果我执行以下操作,帧速率会恶化:

 var pinataTextAtlas = GameViewController().catAtlas

我做错了什么或如何解决这个问题?

谢谢! (对不起我的英文)

1 个答案:

答案 0 :(得分:0)

如果由于在运行时加载纹理而导致帧速率下降,则预加载只会提高帧速率。显然,情况并非如此。

您可以采取以下措施来缩小范围:

  • 在设备上运行(模拟器performane 总是可怕)
  • 减少节点数
  • 减少物理主体的节点数
  • 减少同时/频繁碰撞的物理机构数量
  • 运行工具以分析您的应用