【发布时间】:2012-07-25 15:25:20
【问题描述】:
我已经看过几篇关于此的帖子(例如this one),但我仍然不明白。
如果我调用 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"];
}
【问题讨论】:
标签: iphone ios cocos2d-iphone game-engine