【问题标题】:How to limit frame rate to 30fps in OS X with Cocos2D如何使用 Cocos2D 在 OS X 中将帧速率限制为 30fps
【发布时间】:2013-07-10 02:04:16
【问题描述】:

我正在使用 Cocos2D 1.0.1 将我的 iOS 游戏移植到 OS X(在 Cocos2D 2.0 中的结果相同),但我无法将帧速率限制为 30fps。调用 setAnimationInterval 在 iOS 中完美地限制了帧速率,但在 OS X 中没有任何作用(我已经尝试在任何地方调用它,多次等等)。

[director setAnimationInterval:1.0/30];

我也尝试过 setTimeScale,但这不会以任何方式正确限制帧速率。 ([[CCScheduler sharedScheduler] setTimeScale:X])

如果有人成功地限制了 OS X 中的帧速率,尤其是 Cocos2D,请告诉我。

编辑: 谢谢你。实际上,我已经在使用它了。我很抱歉我的代码没有更清楚。 director 只是 sharedDirector 的一个快捷方式,如下:

CCDirectorMac *director = (CCDirectorMac*) [CCDirector sharedDirector];

所以最后的代码还是调用了你给的代码:

[[CCDirector sharedDirector] setAnimationInterval:1.0/30];

感谢您的回答,redux。不过,帧速率仍然没有限制。奇怪,因为 setAnimationInterval 一直在 iOS 上工作,但在 Mac 上什么也没做(虽然导演在 iOS 上会有所不同,但仍然如此)。

【问题讨论】:

  • 如果游戏运行不慢,为什么要限制帧率?您的游戏逻辑是否与游戏帧速率相关联?
  • 帧率太不稳定了。是的,一些逻辑与帧速率有关(有充分的理由)。游戏非常大,随着时间的推移更改依赖于帧的所有内容将是有问题的。另外,原版在 iOS 上完美运行,因此限制 FPS 对于 OSX 端口最有意义。感谢您的关注。

标签: objective-c macos cocos2d-iphone


【解决方案1】:

我很确定任何对 director 的调用都已被弃用,需要使用 CCSharedDirector。试试这个:

[[CCDirector sharedDirector] setAnimationInterval:1.0/30]; 

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多