【问题标题】:Why does setting frameInterval on a SKView not work?为什么在 SKView 上设置 frameInterval 不起作用?
【发布时间】:2015-06-25 14:16:28
【问题描述】:

我正在尝试将帧速率降低到最高 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 是我的NSViewController-子类的NSView 的出口

-(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,动画也会保持流畅。

【问题讨论】:

  • 你怎么知道它不起作用?为您的 SKView 发布代码 sn-p。
  • @sangony 调试输出一直显示 60 fps。用 sn-ps 更新了我的问题。
  • 如果该代码在SKView 子类中,那么self.spriteKitView 是什么?
  • Sprite Kit FPS 在 OS X 上是一团糟。全屏时 FPS 经常掉线,某些设备如 Mac book air 存在严重错误。有时 FPS 会根据窗口大小设置上限。我提交的所有关于 FPS 的票都说它们是在 Xcode 7/el capitan 中修复的。我还没有机会测试 Xcode 7,但如果可以的话,您应该尝试看看您的错误是否已修复。
  • @SimonKemper 你可以在这里看到我关于全屏错误的一些解决方法的帖子:stackoverflow.com/q/27758027/2158465 哈哈,Mac book air 出于某种原因会在超过一定数量的绘图调用时限制 FPS。 Mac book air 有时也不适用于我在链接中发布的全屏解决方法。我会说坚持使用 Sprite Kit。只要您不进行全屏操作,它就可以正常工作(您始终可以使用最大窗口)。至于您的 frameInterval 问题,我可能会问您为什么要将其限制为 30。Imo 30 FPS 看起来真的很糟糕。如果你得到 60 坚持下去!

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


【解决方案1】:

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

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

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

编辑:

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

【讨论】:

  • 您是否找到了解决方案,还是仍然存在问题?
  • 无法检查,但一旦发生这种情况,我会发布更新!
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2020-03-19
  • 2021-07-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
相关资源
最近更新 更多