故意减慢 FPS Spritekit
Purposely slowing down FPS Spritekit
是否可以故意降低 SpriteKit 场景的 FPS?我在想这是否可以让我的游戏调试更容易。
当您从 GameViewController
加载第一个场景时,您可以更改 SKView
的 FPS 值。
类似于:
if #available(iOS 10.0, *) {
skView.preferredFramesPerSecond = 30 // 30 FPS
} else {
skView.frameInterval = 2 // Deprecated (1 default = 60FPS so 2 would = 30 FPS)
skView.preferredFrameRate = ... // Deprecated
}
正如 Whirlwind 在回答中亲切指出的那样:
“此外,这不会减慢任何速度,您只是跳过您看到的帧,例如,如果您有一个节点在 5 秒内从点 A 移动到点 B,并且您将 preferredFrameRate 更改为 30fps,该节点仍将在 5 秒内从 A 移动到 B,而不是 10 秒。您将看到的唯一变化是跳过了一些帧。"
SKView
API 参考 here
您也可以通过减慢节点或物理速度来做类似的事情(作为 crashoverride777 的答案的补充):
要使节点进入 slow-mo(您可以对每个节点执行此操作):
self.speed = 0.2 //where self is a scene
或者对物理学做同样的事情:
self.physicsWorld.speed = 0.2 //where self is a scene
是否可以故意降低 SpriteKit 场景的 FPS?我在想这是否可以让我的游戏调试更容易。
当您从 GameViewController
加载第一个场景时,您可以更改 SKView
的 FPS 值。
类似于:
if #available(iOS 10.0, *) {
skView.preferredFramesPerSecond = 30 // 30 FPS
} else {
skView.frameInterval = 2 // Deprecated (1 default = 60FPS so 2 would = 30 FPS)
skView.preferredFrameRate = ... // Deprecated
}
正如 Whirlwind 在回答中亲切指出的那样:
“此外,这不会减慢任何速度,您只是跳过您看到的帧,例如,如果您有一个节点在 5 秒内从点 A 移动到点 B,并且您将 preferredFrameRate 更改为 30fps,该节点仍将在 5 秒内从 A 移动到 B,而不是 10 秒。您将看到的唯一变化是跳过了一些帧。"
SKView
API 参考 here
您也可以通过减慢节点或物理速度来做类似的事情(作为 crashoverride777 的答案的补充):
要使节点进入 slow-mo(您可以对每个节点执行此操作):
self.speed = 0.2 //where self is a scene
或者对物理学做同样的事情:
self.physicsWorld.speed = 0.2 //where self is a scene