我有以下 Swift 代码,但是,当我在 Xcode Simulator 中运行它时,它会直接跳到“我不相信我们以前见过面”。如何让 Swift 等待“Welcome”先被执行?
import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
// Get label node from scene and store it for use later
let animateList = SKAction.sequence([SKAction.fadeIn(withDuration: 1.0), SKAction.wait(forDuration: 2.0), SKAction.fadeOut(withDuration: 1.0)])
let startScreen = SKLabelNode(fontNamed: "Helvetica Neue UltraLight")
startScreen.text = "Welcome"
startScreen.fontSize = 100.0
startScreen.fontColor = SKColor.white
startScreen.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(startScreen)
startScreen.alpha = 0.0
startScreen.run(animateList)
startScreen.text = "I don't belive we have met before"
startScreen.run(animateList)
}
}
最佳答案
不要调用 startScreen.run()
,而是调用 startScreen.run(_:completion)
并在 SKAction< 之后执行您想执行的操作
s 已在完成处理程序中运行。查看documentation .
startScreen.run(animateList, completion: {
self.startScreen.text = "I don't belive we have met before"
self.startScreen.run(animateList)
})
关于ios - 你如何让 Swift 等待 SKAction 被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45351479/