Следующая функция подсчитывает красный-зеленый свет, затем подсчитывает время реакции пользователя на нажатие кнопки после отображения зеленого индикатора.Вложенный оператор if в быстрой функции
func updateCounter() {
timerInt -= 1
if timerInt == 2{
light.image = UIImage(named: "r.png")
} else if timerInt == 1 {
light.image = UIImage(named: "yellow.png")
} else if timerInt == 0 {
light.image = UIImage(named: arc4random_uniform(2) == 0 ? "no.png" : "g.png")
timer.invalidate()
startStop.isEnabled = true
scoreTimer = Timer.scheduledTimer(timeInterval: 0.0001, target: self, selector: #selector(ViewController.updateScoreTime), userInfo: nil, repeats: true)
}
}
В нем указано else if timerInt == 0
, пользователю предоставляется случайная функция. Изображение либо станет зеленым, либо отобразится «x».
Если отображается x, я хотел бы, чтобы пользователь нажал кнопку, в которой говорится, что игра завершена, чтобы перезапустить последовательность красного света.
Если отображается зеленый свет, я бы хотел, чтобы пользователь испытал время реакции.
Так функционирует функция уже сейчас, за исключением того, что она не изменяется, если отображается x. Я предполагаю, что я хотел бы функцию, чтобы запустить следующим образом:
если timeInt == 0 и зеленый свет выбирается
затем запустить время реакции тестеще если timeInt == 0 и х выбран
, а затем завершить время реакции и запустить игру над кнопкой
Как я могу это достичь?
0.0001 для вашего таймера это слишком быстрая частота обновления. Это нужно будет выполнять 10 тысяч раз в секунду. Просто используйте 1/30, это время, необходимое для большинства обновлений дисплея, которые могут вам понадобиться. –
Ваш вопрос слишком общий. Может быть, вы можете дать нам немного больше контекста. Как вы проверяете время реакции? Как вы заканчиваете время реакции? Что должно делать updateScoreTime()? –