我正在尝试将帧速率降低到最大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];
}
动画也能保持平稳。
答案 0 :(得分:0)
确定!由于工作时间弄清楚我做错了什么,我测试了Xcode SpriteKit模板。令人惊讶的是,即使这个Apple提供的示例代码也没有对skView.frameInterval
属性做出反应。
所以我想到了一个硬件错误并在苹果论坛上搜索了这个。我发现有些人抱怨同样的问题,而且令人惊讶的是Apple确实知道 FPS-Bug 并且会在 el capitan 中解决这个问题...希望......我要测试dev预发布!
然而,在 os x 上SpriteKit中存在更多错误!例如,当将窗口切换到全屏时,FPS偶尔会下降未定义的数量。这有点搞砸了!
编辑:
感谢@EpicByte,我找到了一些理由和答案。在上面的评论中看到他的解释!