Я создаю простую игру в понг ..
прямо сейчас я хотел установить таймер, который остановится после того, как я проиграю, и, возможно, сохраню значение в высокий балл, но, несмотря на то, что мне удалось установить таймер и включить его, похоже, он не хочет останавливаться.
Я реализовывал это с помощью этого урока:
http://www.apptite.be/tutorial_ios_stopwatch.php
Прямо сейчас мой код выглядит так:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (StavHry == StavHryPozastaven) {
TapToBegin.hidden = YES;
StavHry = StavHryAktivni;
} else if (StavHry == StavHryAktivni) {
[self touchesMoved:touches withEvent:event];
}
startDate = [NSDate date];
stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0 target:self selector:@selector(updateTimer)userInfo:nil repeats:YES];
}
- (void)updateTimer
{
static NSInteger counter = 0;
StopWatchLabel.text = [NSString stringWithFormat:@"Counter: %i", counter++];
NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss.SSS"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
NSString *timeString=[dateFormatter stringFromDate:timerDate];
StopWatchLabel.text = timeString;
}
Я устанавливаю таймер, когда нажимаю на ярлык TapToBegin.
но когда я проигрываю или выигрываю, таймер просто продолжает работать, даже несмотря на то, что я использовал функцию invalidate до запуска новой игры .. (когда я запускаю новую игру, она сбрасывается)
-(void)reset:(BOOL) novahra { //funkce reset
self.StavHry = StavHryPozastaven;
mic.center = self.view.center;
if(novahra) {
if(skore_hrac_hodnota < skore_pc_hodnota){
TapToBegin.text = @"Protivnik Vyhrál, smůla!";
[stopWatchTimer invalidate];
} else {
TapToBegin.text = @"Vyhráls! Gratulujem!";
[stopWatchTimer invalidate];
}
skore_hrac_hodnota = 0;
skore_pc_hodnota = 0;
} else {
self.StavHry = StavHryAktivni;
//TapToBegin.text = @"Pokračuj!";
}
skore_hrac.text = [NSString stringWithFormat:@"%d", skore_hrac_hodnota];
skore_pc.text = [NSString stringWithFormat:@"%d", skore_pc_hodnota];
}
я знаю, что в учебнике показано больше строк кода для его действия остановки, но я попробовал больше опций, я дал ему все, что у него есть, но я думаю, что это единственная строка, которая останавливает таймер, поэтому он должен работать. но это не так.
Пожалуйста, помогите, у меня есть понедельник, чтобы закончить это, так что я немного волнуюсь.