我目前正在尝试提高帧速率,想知道在 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 个将提高性能。