Sprite kit 限制精灵套件帧速率

Sprite kit 限制精灵套件帧速率,sprite-kit,frame-rate,Sprite Kit,Frame Rate,我是编程新手,正在制作一个精灵工具包游戏。我正在制作一个大图像的滚动背景,这将帧速率降低到30fps。但是在游戏开始时,在其他精灵进入之前,帧速率在30到60帧之间变化。因为我在更新方法中移动背景,所以背景滚动的速度在不断变化。我想限制最大帧速率为30fps,以实现恒定速度。 我也听说过使用Delta time来实现恒定速度,但在网上找不到相关的教程 提前谢谢 您可以通过将SKView设置为2来实现这一点 它将有效地将最大帧速率从60降低到30。frameInterval现已被弃用 将SKVie

我是编程新手,正在制作一个精灵工具包游戏。我正在制作一个大图像的滚动背景,这将帧速率降低到30fps。但是在游戏开始时,在其他精灵进入之前,帧速率在30到60帧之间变化。因为我在更新方法中移动背景,所以背景滚动的速度在不断变化。我想限制最大帧速率为30fps,以实现恒定速度。 我也听说过使用Delta time来实现恒定速度,但在网上找不到相关的教程


提前谢谢

您可以通过将SKView设置为2来实现这一点


它将有效地将最大帧速率从60降低到30。

frameInterval现已被弃用

将SKView对象的属性设置为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
            }
        }
    }

您正在设备上测试吗?如果没有,那么模拟器的性能就不能代表设备上的真实设备。性能要好得多。谢谢