限制 Sprite 套件帧率

Posted

技术标签:

【中文标题】限制 Sprite 套件帧率【英文标题】:Limit Sprite kit Frame-rate 【发布时间】:2014-02-15 10:01:32 【问题描述】:

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

提前致谢。

【问题讨论】:

您在设备上进行测试吗?如果没有,请这样做,模拟器性能不能代表真实设备 在设备上测试。性能好很多。谢谢。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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
            
        
    

【讨论】:

以上是关于限制 Sprite 套件帧率的主要内容,如果未能解决你的问题,请参考以下文章

从云套件中快速加载所有记录,避免限制结果

使用 Openssl s_server 限制密码套件选择

Sprite 套件精灵加载性能改进

更换 Sprite 套件中的场景时崩溃

在 Sprite 套件中未检测到联系人

Sprite 套件 CGPoint 未按预期工作