在我的游戏中,我有一系列核心动画在一秒钟内一个接一个地运行。在动画结束时,调用一个方法来触发(animationDidStop :)一些重要的逻辑。
通常这很有效。然而,偶尔,特别是在较慢的设备(如iPhone 3G或iPhone 2)上,由于计时问题(运行太多且CPU无法跟上),其中一个动画被跳过(或无法启动)。我很喜欢跳过动画,但问题是,我的方法也没有被调用。如果可以检测到这种跳过将会很好。
有人知道如何在跳过核心动画/无法启动时检测到这种情况吗?
感谢。
答案 0 :(得分:1)
你需要使用2件事
- NSTimer *计时器
- BOOL isAnimationCompleted
1)启动与动画时间相同的计时器“计时器”。
2)在(animationDidStop :)方法中设置“isAnimationCompleted = TRUE”
3)“计时器”勾选后检查“isAnimationCompleted”变量
如果(!isAnimationCompleted)
[self callMethodMannually];
答案 1 :(得分:0)
我确信有一个更好的选项,我没有看到,但你总是可以将状态保存在某个变量中,然后使用NSTimer来启动一个稍后检查该状态的任务。
希望别人能为你提供一些不那么神奇的东西!