【发布时间】:2017-01-20 10:19:15
【问题描述】:
是否可以故意减慢 SpriteKit 场景的 FPS?我在想这是否可以让我的游戏调试更容易。
【问题讨论】:
标签: objective-c sprite-kit frame-rate
是否可以故意减慢 SpriteKit 场景的 FPS?我在想这是否可以让我的游戏调试更容易。
【问题讨论】:
标签: objective-c sprite-kit frame-rate
您也可以通过减慢节点或物理速度来做这样的事情(作为 crashoverride777 答案的补充):
要让节点进入慢动作(您可以对每个节点执行此操作):
self.speed = 0.2 //where self is a scene
或者对物理学做同样的事情:
self.physicsWorld.speed = 0.2 //where self is a scene
【讨论】:
当您从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
}
正如旋风在他的回答中如此亲切地指出的那样:
“此外,这不会减慢任何速度,您只是跳过您看到的帧,例如。如果您有一个节点在 5 秒内从 A 点移动到 B 点,并且您将 preferredFrameRate 更改为 30fps,该节点将移动从 A 到 B 仍然需要 5 秒,而不是 10 秒。您会看到的唯一变化是跳过了一些帧。”
SKView API 参考here
【讨论】:
SKView 类所解释的那样,frameInterval 也已弃用:/* Deprecated, please use preferredFramesPerSecond. Number of frames to skip between renders, defaults to 1 (render every frame) Actual requested rate will be preferredFramesPerSecond / frameInterval. */ @available(iOS, introduced: 7.0, deprecated: 10.0) open var frameInterval: Int
if #available(iOS 10.0, *) {...} 如果您的部署目标是