Я делаю это приложение, в котором, когда вы нажимаете кнопку, персонаж поднимается вверх, а после этого он опускается (я хочу, чтобы он действовал так: когда он нажимается, он должен подниматься на 200 лет, затем он начинает спускаться. ) Это мой код:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var TheCharacter: UIImageView!
@IBOutlet weak var TheRocket: UIImageView!
@IBAction func TheCharacterJumps(_ sender: Any) {
let TheCharacterY = self.TheCharacter.frame.origin.y
UIView.animate(withDuration: 0.35, animations: {
self.TheCharacter.frame = CGRect(x: 167, y: TheCharacterY - 194, width: 40, height: 40)
}) { (finished) in
}
UIView.animate(withDuration: 2, animations: {
self.TheCharacter.frame = CGRect(x: 167, y: TheCharacterY + 435, width: 40, height: 40)
}) { (finished) in
}
}
}
Итак, это так: Когда кнопка нажата, персонаж поднимается, а затем начинает падать. Но когда кнопку нажимают два или более раз подряд, вместо того, чтобы подниматься, например, на 200 лет, она увеличивается только на 50 лет. Как я могу предотвратить это?
Нет, я на самом деле хочу, чтобы кнопка работала, как хлопающая птичка, «в ряд», я имею в виду, что она не закончила свое движение и снова нажата.
К сожалению (может быть, к счастью), я понятия не имею, что такое flappy bird. Итак, вы хотите, чтобы пользователь мог нажимать кнопку во время анимации, сбрасывая анимацию, верно?
Да, я хочу, чтобы пользователь мог нажимать кнопку во время анимации, сбрасывая анимацию.
@rmaddy, потому что они разные
Может это может помощь





Если вам нужна «колеблющаяся» анимация, вам следует использовать динамические аниматоры и добавить гравитации к сцене и силы к элементам. Затем UIKit рассчитает анимацию.
Документ Apple: UIDynamicAnimator.
В этом случае каждый раз, когда вы нажимаете кнопку / экран, добавляйте некоторую восходящую силу к виду, и он поднимется сам по себе и начнет опускаться после потери скорости.
Посмотрите учебник Рэя Вендерлиха: щелкнуть
Если вы собираетесь реализовать игру вне этого использования, возможно, лучше взглянуть на SpriteKit вместо UIKit. Взгляните на SKSpriteNode и как добавить SKPhysicsBody.
Вы хотите отключить кнопку во время анимации? Это проблема? Или проблема в анимации? Когда вы говорите, что кнопка нажимается дважды подряд, вы имеете в виду быстрое последовательное нажатие?