以编程方式在SKS文件中创建节点

时间:2017-04-04 01:25:44

标签: swift sprite-kit

我目前正在尝试提高帧速率,并想知道手动创建sps文件或以编程方式创建精灵是否更好?另外,以编程方式加载图像或创建SKSprite节点更快吗?

1 个答案:

答案 0 :(得分:3)

如果您正在讨论创建单个精灵,那么它将没有任何区别 - 与在viewDidLoad中分配一些代码相比,使用其包含的SKSpriteNodes解压缩和启动.sks文件所花费的时间将是微不足道的,即使它是,你只会在节目开始时看到一点点犹豫 - 可能在屏幕上出现任何事情之前。

关于加载图片的问题实际上是同一个问题 - 您要么在.sks文件中创建纹理化的SKSPriteNodes,要么使用let mySprite = SKSpriteNode(imageNamed: "myImage")

在代码中创建它们

除非你有一个循环,每个update()创建10或100或精灵,否则我会在其他地方寻找你的帧率问题:

  • 你的场景中有多少精灵?
  • 物理学是什么,如果有的话 参与?
  • 您在update()针对每个节点运行了多少代码?
  • 您是否在模拟器或实际帧中看到较差的帧速率 设备?如果它在模拟器中,那么Mac的型号是什么?

将以下内容添加到Gameviewcontroller:

skView.showsFPS = true    
skView.showsNodeCount = true
skView.showsDrawCount = true    // show how many draw passes are required
skView.ignoresSiblingOrder = true   // Render sprites more efficiently

前3个将帮助诊断问题,第4个将提高性能。