Нажмите «Жест» не работает на Circle Swift. ⇐ IOS
-
Гость
Нажмите «Жест» не работает на Circle Swift.
Я создаю одностраничную игру, в которой вы выбираете круг, и уровень очков увеличивается. Я почти завершил его, но мой жест касания не работает с кругами. Я попробовал код ниже, но он не работает. Пожалуйста, проверьте код ниже.
импортировать UIKit импортировать AVFoundation класс Демо-игра: UIViewController { @IBOutlet слабая переменная ScoreLabel: UILabel! вар счет = 0 вар isGameOver = ложь переопределить функцию viewDidLoad() { супер.viewDidLoad() начать игру() } функция startGame() { оценка = 0 ScoreLabel.text = "Оценка: \(оценка)" isGameOver = ложь // Создаем таймер для создания кругов Timer.scheduledTimer(withTimeInterval: 2.0, повторы: true) {таймер в если !self.isGameOver { self.spawnCircle() } еще { таймер.инвалидата() } } } функция spawnCircle() { пусть CircleSize = CGSize (ширина: 50, высота: 50) пусть CircleView = UIView (кадр: CGRect (происхождение: CGPoint (x: CGFloat.random (в: 50...view.frame.width - CircleSize.width - 50), y: CGFloat.random(in: 100...view.frame.height - CircleSize.height - 50)), размер: CircleSize)) CircleView.backgroundColor = UIColor.random() CircleView.layer.cornerRadius = CircleSize.width / 2 view.addSubview(circleView) // Добавляем распознаватель жестов касания в каждый круг let TapGesture = UITapGestureRecouncer(target: self, action: #selector(handleTap(_:))) CircleView.addGestureRecouncer(tapGesture) // Анимируем появление и исчезновение круга UIView.animate(withDuration: 3.0, анимации: { кругView.alpha = 0,0 }) { (завершено) в если завершено { CircleView.removeFromSuperview() } } } @objc func handleTap (_ отправитель: UITapGestureRecouncer) { если isGameOver { возвращаться } если пусть TappedView = sender.view { TappedView.removeFromSuperview() оценка += 1 ScoreLabel.text = "Оценка: \(оценка)" } } } расширение UIColor { статическая функция random() -> UIColor { вернуть UIColor( красный: CGFloat.random(в: 0,0...1,0), зеленый: CGFloat.random(в пределах: 0,0...1,0), синий: CGFloat.random(в пределах: 0,0...1,0), альфа: 1.0 ) } } Вопрос: Как коснуться жеста, работающего по кругам, и повысить уровень оценки?
Может кто-нибудь объяснить мне, как это сделать, я пробовал использовать приведенный выше код, но пока безрезультатно. Пожалуйста, поправьте меня, если я делаю неправильно.
Будем очень благодарны за любую помощь
Я создаю одностраничную игру, в которой вы выбираете круг, и уровень очков увеличивается. Я почти завершил его, но мой жест касания не работает с кругами. Я попробовал код ниже, но он не работает. Пожалуйста, проверьте код ниже.
импортировать UIKit импортировать AVFoundation класс Демо-игра: UIViewController { @IBOutlet слабая переменная ScoreLabel: UILabel! вар счет = 0 вар isGameOver = ложь переопределить функцию viewDidLoad() { супер.viewDidLoad() начать игру() } функция startGame() { оценка = 0 ScoreLabel.text = "Оценка: \(оценка)" isGameOver = ложь // Создаем таймер для создания кругов Timer.scheduledTimer(withTimeInterval: 2.0, повторы: true) {таймер в если !self.isGameOver { self.spawnCircle() } еще { таймер.инвалидата() } } } функция spawnCircle() { пусть CircleSize = CGSize (ширина: 50, высота: 50) пусть CircleView = UIView (кадр: CGRect (происхождение: CGPoint (x: CGFloat.random (в: 50...view.frame.width - CircleSize.width - 50), y: CGFloat.random(in: 100...view.frame.height - CircleSize.height - 50)), размер: CircleSize)) CircleView.backgroundColor = UIColor.random() CircleView.layer.cornerRadius = CircleSize.width / 2 view.addSubview(circleView) // Добавляем распознаватель жестов касания в каждый круг let TapGesture = UITapGestureRecouncer(target: self, action: #selector(handleTap(_:))) CircleView.addGestureRecouncer(tapGesture) // Анимируем появление и исчезновение круга UIView.animate(withDuration: 3.0, анимации: { кругView.alpha = 0,0 }) { (завершено) в если завершено { CircleView.removeFromSuperview() } } } @objc func handleTap (_ отправитель: UITapGestureRecouncer) { если isGameOver { возвращаться } если пусть TappedView = sender.view { TappedView.removeFromSuperview() оценка += 1 ScoreLabel.text = "Оценка: \(оценка)" } } } расширение UIColor { статическая функция random() -> UIColor { вернуть UIColor( красный: CGFloat.random(в: 0,0...1,0), зеленый: CGFloat.random(в пределах: 0,0...1,0), синий: CGFloat.random(в пределах: 0,0...1,0), альфа: 1.0 ) } } Вопрос: Как коснуться жеста, работающего по кругам, и повысить уровень оценки?
Может кто-нибудь объяснить мне, как это сделать, я пробовал использовать приведенный выше код, но пока безрезультатно. Пожалуйста, поправьте меня, если я делаю неправильно.
Будем очень благодарны за любую помощь
Мобильная версия