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

Swift 以编程方式在SKS文件中创建节点vs,swift,sprite-kit,Swift,Sprite Kit,我目前正在尝试提高帧速率,想知道在sks文件中手动创建精灵还是通过编程创建精灵更好?此外,以编程方式加载图像或创建SKSprite节点是否更快?如果您正在谈论创建单个Sprite,那么这不会有任何区别-与在viewDidLoad中分配少量代码相比,取消归档并启动包含SKSpriteNodes的.sks文件所需的时间将微不足道,即使是这样,你也只能在节目开始时看到轻微的犹豫——可能是在屏幕上出现任何东西之前 关于加载图像的问题实际上是同一个问题-您要么在.sks文件中创建了带纹理的SKSPrite

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

如果您正在谈论创建单个Sprite,那么这不会有任何区别-与在viewDidLoad中分配少量代码相比,取消归档并启动包含SKSpriteNodes的.sks文件所需的时间将微不足道,即使是这样,你也只能在节目开始时看到轻微的犹豫——可能是在屏幕上出现任何东西之前

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

除非你有一个循环,每次更新都创建10秒或100秒或精灵,否则我会在其他地方查找你的帧速率问题:

你的场景中有多少精灵? 如果有的话,物理学是什么 卷入的 在更新中,您对每个节点运行了多少代码? 你是在模拟器上还是在实际的计算机上看到低帧速率 装置如果在模拟器中,这是什么型号的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个有助于提高性能。

SKShape节点与具有images@joshLor-然而,据苹果称,SKSprite​Node类提供了比该类更高的性能,因此要节省使用shape节点。因此,如果使用精灵时帧速率有问题,移动到形状会使情况变得更糟。形状节点与带有图像的精灵的情况如何。哪一个更快?苹果说精灵更快。即使图像必须加载