为什么在SKView上设置frameInterval不起作用?

时间:2015-06-25 14:16:28

标签: macos sprite-kit frame-rate skscene skview

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

skView.frameInterval = 2;

我通读了所有可用的文档以及在stackoverflow或其他页面/博客/等中提出的每个类似问题。我在很多方面尝试了它,但是在我尝试设置属性的地方它并没有影响FPS。

我没有使用任何其他计时机制,而不是SpriteKit。我正在根据文档和Stackoverflow上的答案进行设置。

我甚至开始使用Xcode提供的基本SpriteKit模板,并试图设置帧速率属性,但即使这样也没有用。

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

BTW:我正在开发OS X并拥有第一代Retina Macbook Pro - 也许这是硬件问题?

编辑:

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

这是我在Interface Builder中设置的NSViewController子类中所做的。 self.spriteKitView是我NSView的{​​{1}}的出口 - 子类

NSViewController

我甚至尝试将它放入我的SKScene-Subclass,将它作为Interface Builder中的用户属性附加到SKView。

我现在怎么样都不行?在我的游戏和Xcode模板中,调试输出均为60 FPS。即使减少-(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]; } 动画也能保持平稳。

1 个答案:

答案 0 :(得分:0)

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

所以我想到了一个硬件错误并在苹果论坛上搜索了这个。我发现有些人抱怨同样的问题,而且令人惊讶的是Apple确实知道 FPS-Bug 并且会在 el capitan 中解决这个问题...希望......我要测试dev预发布!

然而,在 os x 上SpriteKit中存在更多错误!例如,当将窗口切换到全屏时,FPS偶尔会下降未定义的数量。这有点搞砸了!

编辑:

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