我已经看过几篇关于这个的帖子(例如这个),但我仍然不明白。
如果我调用 CCDirector 暂停方法,它会将动画间隔设置为 1/4,并将值 isPaused_ 设置为 YES(参见下面的代码)。在CCDirector.m类中,isPaused_变量似乎并没有在 pause 和 resume 方法中使用太多。
因此,我决定也调用 stopAnimation 方法,但在某些帖子中没有提及:
[[CCDirector sharedDirector] stopAnimation]
它显然不会停止将加速度计数据和输入数据发送到主场景。这对我来说确实有意义,因为游戏的开发者可能希望允许用户通过摇晃 iPhone 或点击恢复按钮来恢复。这是这个选择背后的原因吗?
另外,为什么动画间隔设置为 1/4 以及为什么即使有这个值的东西也不会移动(除了我的玩家实体使用加速度计输入移动)?
非常感谢!
-(void) pause
{
if( isPaused_ )
return;
oldAnimationInterval_ = animationInterval_;
// when paused, don't consume CPU
[self setAnimationInterval:1/4.0];
[self willChangeValueForKey:@"isPaused"];
isPaused_ = YES;
[self didChangeValueForKey:@"isPaused"];
}