У меня есть игра в SpriteKit, где персонаж использует одну анимацию навсегда, чтобы создать иллюзию, по которой он подпрыгивает.
let frankieTexture = SKTexture(imageNamed: "image1.png")
let frankieTexture2 = SKTexture(imageNamed: "image2.png")
let frankieTexture3 = SKTexture(imageNamed: "image3.png")
let frankieBounceAnimation = SKAction.animate(with: [frankieTexture, frankieTexture2, frankieTexture3], timePerFrame: 0.3)
let makeFrankieBounce = SKAction.repeatForever(frankieBounceAnimation)
frankie = SKSpriteNode(texture: frankieTexture)
frankie.position = CGPoint(x: self.frame.midX - 250, y: self.frame.midY - 450)
frankie.size = CGSize(width: frame.size.width * 0.25, height: frame.size.height * 0.25)
frankie.run(makeFrankieBounce)
Затем, при касании Began, когда пользователь касается экрана, я хочу прервать эту анимацию и заменить ее другой анимацией. Вот этот:
let frankieOtherAnimationTexture1 = SKTexture(imageNamed: "OtherAnimation1.png")
let frankieOtherAnimationTexture2 = SKTexture(imageNamed: "OtherAnimation2.png")
let frankieOtherAnimationTexture3 = SKTexture(imageNamed: "OtherAnimation3.png")
let frankieOtherAnimationTexture4 = SKTexture(imageNamed: "OtherAnimation4.png")
let frankieOtherAnimationAnimate = SKAction.animate(with: [frankieOtherAnimationTexture1, frankieOtherAnimationTexture2, frankieOtherAnimationTexture3, frankieOtherAnimationTexture4], timePerFrame: 0.2)
let makeFrankieOtherAnimation = SKAction.repeat(frankieOtherAnimationAnimate, count: 1)
Как заставить repeatForever приостановить и запустить вторую анимацию, а затем перезапустить? Я играл с несколькими заявлениями «если, то» и, похоже, не смог этого сделать ...
Заранее спасибо!