Я пытаюсь создать простую анимацию (с 3 текстурами), которая должна запускаться только один раз каждый раз, когда игрок умирает. Я написал код ниже, ища в Интернете, как изменить текстуры и заставить программу ждать между сменой текстур (я хотел сделать это таким образом, а не с атласом, потому что это только 3 текстуры).
Игра работает так, что мяч остается на том месте, где он умирает. Затем он остается в этом положении, в то время как печать (я ждал) печатает 3 раза. Однако между ожиданиями текстура моего мяча не меняется. Это единственное, что не работает в приведенном ниже коде.
Как заставить этот код работать, или есть еще один простой способ создания одноразовой анимации?
override func update(_ currentTime: TimeInterval) {
//CHECK IF BALL IS INSIDE THE MAP
if (map_1_buffer.contains(ball.position)) {
} else {
let texture1 = SKTexture(imageNamed: "death_1")
let texture2 = SKTexture(imageNamed: "death_2")
let texture3 = SKTexture(imageNamed: "death_3")
let normal = SKTexture(imageNamed: "Ball1")
ball.texture = texture1
sleep(UInt32(2))
print("i waited 1")
ball.texture = texture2
sleep(UInt32(2))
print("i waited 2")
ball.texture = texture3
sleep(UInt32(2))
print("i waited 3")
ball.texture = normal
death += 1
ball.physicsBody?.velocity.dx = 0
ball.physicsBody?.velocity.dy = 0
ball.position = CGPoint(x: -120, y: 40)
}
}