1

我有一个每帧调用的更新方法。每次更新,它都会将其 deltaTime 添加到一个变量中。

如果我暂停 CCDirector 并在一段时间后恢复它,那么该预定方法中的 deltaTime 会很大吗?

我问是因为我正在追踪一个错误,在某些设备上,玩家可以在 iOS 设备上按下主页按钮,然后在一段时间后恢复应用程序,并且仍然添加了保存其 totalGameTime 的变量,就好像游戏没有t 被暂停。

当我使用 cocos2d 调度程序时,我的印象是不应该发生这种情况。

任何认为需要它的人的代码

//[self schedule:@selector(myUpdate:)];

float totalGameTime

-(void) myUpdate:(ccTime) dt {

    totalGameTime += (float) dt;
}
4

2 回答 2

2

我注意到这也发生了,但只是在发布时。我通过添加来修复它:

[[CCDirector sharedDirector] setNextDeltaTimeZero:YES];

对我-(void) applicationDidBecomeActive:(UIApplication *)application

这可能是 2.0 版中的一个错误,因为我不记得在此版本之前发生过这种情况。

于 2012-08-16T09:10:32.480 回答
1

不。据我所知,如果您暂停 cocos2d 或者由于操作系统中断(来电或其他原因)而经过大量时间,cocos2d 会重置增量时间。

您还可以通过记录增量时间来轻松测试。如果需要仅在大于 0.1f 左右时记录它。

于 2012-08-16T09:10:46.357 回答