【发布时间】: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