ios - 你如何让 Swift 等待 SKAction 被执行?

标签 ios swift swift3 sprite-kit

我有以下 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/

相关文章:

ios - 使用 Coredata 学习 Swift : why don't I get any UITableViewCells?

ios - 如何在 GCD 中添加 NSOperationQueue 等操作之间的依赖关系

ios - #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 相当于 Swift

swift - 如何在iOS上同时使用线控耳机和蓝牙播放?

ios - 在 UITableView 上显示图像的正确方式?

ios - 如果我的应用程序使用 ios7 新功能,它可以安装在 iOS 6 中吗?

swift - 复制或赋值时,swift 深层数组如何复制自身

ios - 游戏运行一段时间后 AVAudioPlayer 返回 nil

json - 根据 JSON 标准将复选标记应用于某些 tableView 行

swift - UIView 不显示