есть важный SKAction, который вы можете использовать в этом случае
let scale = SKAction.scale(to: 1, duration: 0.5)
let wait = SKAction.wait(forDuration: TimeInterval(0.5))
let remove = SKAction.removeFromParent()
let sequence = SKAction.sequence([scale, wait, remove])
node.run(sequence)
, если он не существует, вы можете запустить его в блоке
let scale = SKAction.scale(to: 1, duration: 0.5)
let wait = SKAction.wait(forDuration: TimeInterval(0.5))
let blowup = SKAction.run { self.blowUp() }
let sequence = SKAction.sequence([scale, wait, blowup])
node.run(sequence)
К вашему сведению проблема с вашим Код выше заключается в том, что
self.fruitScaled = true
устанавливается немедленно (он не знает о вашем ожидании l oop). Чтобы запустить его с логическим значением, он должен быть установлен после ожидания
let scale = SKAction.scale(to: 1, duration: 0.5)
let wait = SKAction.wait(forDuration: TimeInterval(0.5))
let change = SKAction.run { self.fruitScaled = true }
let sequence = SKAction.sequence([scale, wait, change])