我是编程新手,正在创建一个精灵套件游戏。我正在制作一个带有大图像的滚动背景,这会将帧速率降低到30fps。然而,在游戏开始时,在引入任何其他精灵之前,帧速率在30fps和60fps之间变化。因为我在更新方法中移动我的背景,所以背景滚动的速度不断变化。我想将最大帧速率限制为30fps以实现恒定速度。 我也听说过使用Delta时间来实现恒定的速度但是无法在线找到有关此内容的教程。
提前致谢。
答案 0 :(得分:11)
您可以通过将SKView上的frameInterval设置为2来实现此目的。
它会有效地将您的最大帧速率从60降低到30。
答案 1 :(得分:4)
现在不推荐使用frameInterval。
将SKView对象的preferredFramesPerSecond属性设置为30。
例如(swift 3.2):
// ViewController.swift
import Cocoa
import SpriteKit
import GameplayKit
class ViewController: NSViewController {
@IBOutlet var skView: SKView!
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.skView {
skView.preferredFramesPerSecond = 30//this will set framerate to 30
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
}