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



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

如果您谈论的是创建单个精灵,那么它不会有任何区别 - 与在代码中分配一些代码相比,取消存档和启动 .sks 文件及其包含的 SKSpriteNodes 所需的时间viewDidLoad微不足道,即使是这样,您也只会在程序开始时看到轻微的犹豫 - 可能在屏幕上出现任何东西之前。

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

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

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

将以下内容添加到游戏视图控制器:

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 个将提高性能。

最新更新