经过大量的改动/尝试等等,我已经到了一个我真正陷入困境的阶段......
我有一个旋转的UIImageview
无限旋转,直到按下屏幕......此时,如果旋转值与某个值匹配(降落在游戏中的目标上),目标会移动并且游戏继续......如果你在按下屏幕后过度射击目标,游戏就结束了。简单的游戏。
我的麻烦是,在您获得GameOver并且动画停止后,我在屏幕上显示UIButton
,这会使用ViewController
将您带回相同的module
。 (我已经为很多应用程序做了这个,它工作正常)。
除此之外,这次,你说得分为4(达到4个目标),然后错过了第5个及其GameOver,当你按下按钮重新启动初始ViewController(基本上重新加载ViewDidLoad)时,动画将无法启动..即使分数和其他事情正确重置......
这是我实现动画的方式:
- (void) spinWithOptions: (UIViewAnimationOptions) options {
[UIView animateWithDuration: 0.0f
delay: 0.0f
options: options
animations: ^{
Hand.transform = CGAffineTransformRotate(Hand.transform, M_PI / 30);
}
completion: ^(BOOL finished) {
if (finished) {
if (animating) { //if, keep spinning
[self spinWithOptions: UIViewAnimationOptionCurveLinear];
} else if (options != UIViewAnimationOptionCurveEaseOut) { //final spin
//[self spinWithOptions: UIViewAnimationOptionCurveEaseOut dir:direction];
}
}
}];
}
- (void) startSpin {
[Hand.layer removeAllAnimations];
if (!animating) {
animating = YES;
[self spinWithOptions: UIViewAnimationOptionCurveEaseIn];
}
}
- (void) stopSpin {
animating = NO;
inGame = NO;
}
我在不同的地方试过removeAllAnimations
,想也许就是那样......但我不明白为什么,如果ViewDidLoad被召回/ ViewController重置并且你回到了开头,为什么动画没有重启?
我选择这种旋转方法的原因是因为我可以跟踪旋转值并存储它,所以我可以重新启动动画,或者我认为...