1

我正在尝试将帧速率降低到最大 30 FPS。官方文档说使用:

skView.frameInterval = 2;

我通读了所有可用的文档以及在 stackoverflow 或其他页面/博客/等中提出的所有类似问题。我尝试了很多方式,但无论我在哪里尝试设置属性,它都不会影响 FPS。

我没有使用除 SpriteKit 之外的任何其他计时机制。我正在根据文档和 Stackoverflow 上的答案进行相应的设置。

我什至启动了 Xcode 提供的基本 SpriteKit 模板并尝试设置帧速率属性,但即使这样也没有成功。

有没有人遇到任何相似之处?有没有其他方法可以降低最大 fps?我还能尝试什么来降低 FPS?

顺便说一句:我正在使用 OS X 并拥有第一代 Retina Macbook Pro - 也许是硬件问题?

编辑:

我没有覆盖该-(void)update:方法-仅-(void)didSimulatePhysics

这就是我在 Interface Builder 中设置的 NSViewController 子类中所做的。是我的子类self.spriteKitView的一个出口NSViewNSViewController

-(void)setupSpriteKitView {

    self.spriteKitView.frameInterval = 2;
    self.spriteKitView.ignoresSiblingOrder = YES;
    self.spriteKitView.showsFPS = YES;
    self.spriteKitView.showsDrawCount = YES;
    self.spriteKitView.showsNodeCount = YES;
}

-(void)viewDidLoad {

    [super viewDidLoad];
    [self setupSpriteKitView];
    [self loadStartupScene];
}

我什至尝试将它放入我的 SKScene 子类中,将其作为 Interface Builder 中的用户属性附加到 SKView。

我现在怎么不工作了?在我的游戏和 Xcode 模板中,调试输出都显示为 60 FPS。即使减少skView.frameInterval = 4动画也能保持流畅。

4

1 回答 1

0

好的!由于工作时间弄清楚我做错了什么,我测试了 Xcode SpriteKit 模板。令人惊讶的是,即使是 Apple 提供的示例代码也不会对该 skView.frameInterval属性做出反应。

所以我正在考虑一个硬件错误并搜索了苹果论坛。我发现有一些人抱怨同样的问题,令人惊讶的是,Apple 确实知道该FPS-Bug并将在el capitan中修复它......希望......我将测试开发预发行版!

但是,在OS x上的 SpriteKit 中还有很多错误!例如,当将窗口切换到全屏时,FPS 会偶尔下降一个未定义的量。有点乱了!

编辑:

感谢@EpicByte,我找到了一些原因和答案。在上面的评论中查看他的解释!

于 2015-06-25T21:19:18.537 回答