限制精灵套件帧速率

时间:2014-02-15 10:01:33

标签: sprite-kit frame-rate

我是编程新手,正在创建一个精灵套件游戏。我正在制作一个带有大图像的滚动背景,这会将帧速率降低到30fps。然而,在游戏开始时,在引入任何其他精灵之前,帧速率在30fps和60fps之间变化。因为我在更新方法中移动我的背景,所以背景滚动的速度不断变化。我想将最大帧速率限制为30fps以实现恒定速度。 我也听说过使用Delta时间来实现恒定的速度但是无法在线找到有关此内容的教程。

提前致谢。

2 个答案:

答案 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
            }
        }
    }