Когда пользователь касается экрана, он смотрит на логическое значение if и запускает таймер, когда значение равно NO
.Он устанавливает его на YES
, поэтому пользователь не может запустить его снова, когда он идет.Когда таймер заканчивает то, что он делает, он устанавливает его обратно на NO
.Значение инициализируется в методе viewDidLoad.Это работает один раз, но не будет работать снова.Судя по всему, это ДОЛЖНО работать.Может кто-нибудь увидеть, что с этим не так:
- (void) fireLoop {
fireImage.hidden = 0;
fireImage.center = CGPointMake(fireImage.center.x, fireImage.center.y - 20);
if (fireImage.center.y == -5) {
[fireTimer invalidate];
fireImage.hidden = 1;
firedOn = NO;
}
}
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (firedOn == NO) {
firedOn = YES;
//set fire image position to player position
fireImage.center = CGPointMake(playerImage.center.x, playerImage.center.y);
fireTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/30 target:self selector:@selector(fireLoop) userInfo:nil repeats:YES];
}
}