限制精灵套件帧速率

dev*_*123 3 frame-rate sprite-kit

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

提前致谢.

Dob*_*pir 11

您可以通过将SKView上的frameInterval 设置为2 来实现此目的.

它会有效地将您的最大帧速率从60降低到30.


EFE*_*EFE 5

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
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)