我正在尝试将帧速率降低到最大 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
的一个出口NSView
NSViewController
-(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
动画也能保持流畅。