Здравствуйте, я пытаюсь сделать продвинутую игру-викторину, которая ведет обратный отсчет. 5 секунд на каждый вопрос, на который нужно ответить, и присвоение соответствующего количества баллов, например, 10, если на него ответили за 5 секунд, 5 за 3 секунды и 1, если за 1 секунду, но моя главная проблема заключается в том, что счетчик работает, и метод, который я вызываю, для удаления живого и начать с неправильного ответа, все работает, но внезапно иногда он удаляет около 2 жизней вместо 1 и выходит за установленный предел 0 для игры более чем -2 жизни, я не могу понять, может кто-нибудь помочь мне? был бы очень признателен и немного нуб в кодировании. вот код, который я использую в моем файле game.m
///////таймер//////////////
-(void) timerRun {
secondsCount = secondsCount - 1;
//int minuts = secondsCount /60;
int seconds = secondsCount;// - (minuts * 60);
NSString *timerOutput = [NSString stringWithFormat:@"%.2d" , seconds];
countDownLaber.text = timerOutput;
if (secondsCount == 0) {
[countDownTimer invalidate];
countDownTimer = nil;
[self LoseByTime];
}
}
-(void) setTimer{
secondsCount = 5;
countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];
}
///////////////таймер ////////////////////
-(void)LoseByTime{
LivesNumber = LivesNumber - 1;
Lives.text = [NSString stringWithFormat:@"%i" , LivesNumber];
}
-(void)RightAnswer{
ScoreNumber = ScoreNumber + 50;
Score.text = [NSString stringWithFormat:@"%i" , ScoreNumber];
NextCategory.hidden = NO;
Answer1.hidden = YES;
Answer2.hidden = YES;
Answer3.hidden = YES;
Answer4.hidden = YES;
QuestionText.hidden = NO;
CategorySelected.hidden = YES;
//Result.hidden = NO;
//Result.image = [UIImage imageNamed:@"transparentPic.png"];
}
-(void)WrongAnswer{
LivesNumber = LivesNumber - 1;
Lives.text = [NSString stringWithFormat:@"%i" , LivesNumber];
NextCategory.hidden = NO;
Answer1.hidden = YES;
Answer2.hidden = YES;
Answer3.hidden = YES;
Answer4.hidden = YES;
QuestionText.hidden = NO;
CategorySelected.hidden = YES;
//Result.hidden = NO;
//Result.image = [UIImage imageNamed:@"transparentPic.png"];
if (LivesNumber == 0) {
Result.image = [UIImage imageNamed:@"gameOver.png"];
NextCategory.hidden = YES;
Exit.hidden = NO;
GameInProgress = NO;
}
}
- (IBAction)Answer1:(id)sender;{
if (Answer1Correct == YES) {
[self RightAnswer];
right1.hidden = NO;
}
else{
[self WrongAnswer];
wrong1.hidden = NO;
}
}
- (IBAction)Answer2:(id)sender;{
if (Answer2Correct == YES) {
[self RightAnswer];
right2.hidden = NO;
}
else{
[self WrongAnswer];
wrong2.hidden = NO;
}
}
- (IBAction)Answer3:(id)sender;{
if (Answer3Correct == YES) {
[self RightAnswer];
right3.hidden = NO;
}
else{
[self WrongAnswer];
wrong3.hidden = NO;
}
}
- (IBAction)Answer4:(id)sender;{
if (Answer4Correct == YES) {
[self RightAnswer];
right4.hidden = NO;
}
else{
[self WrongAnswer];
wrong4.hidden = NO;
}
}