Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sprite kit 按顺序运行函数_Sprite Kit - Fatal编程技术网

Sprite kit 按顺序运行函数

Sprite kit 按顺序运行函数,sprite-kit,Sprite Kit,我正在尝试制作一个延迟3秒后开始的游戏。因此,我尝试添加一个序列,以便在延迟后按序列调用startGame函数。然后,我可以在开始时包含延迟的情况下调用该函数,但是当我尝试在第二个函数的末尾运行序列时,我不断得到一个错误 我有开始游戏的功能: func startGame(){ let spawn = SKAction.run(createEnemy) let wait = SKAction.wait(forDuration: 2) let spawnSequence

我正在尝试制作一个延迟3秒后开始的游戏。因此,我尝试添加一个序列,以便在延迟后按序列调用startGame函数。然后,我可以在开始时包含延迟的情况下调用该函数,但是当我尝试在第二个函数的末尾运行序列时,我不断得到一个错误

我有开始游戏的功能:

 func startGame(){
    let spawn = SKAction.run(createEnemy)
    let wait = SKAction.wait(forDuration: 2)
    let spawnSequence = SKAction.sequence([wait, spawn])
    let spawnForever = SKAction.repeatForever(spawnSequence)
    self.run(spawnForever)
}
然后我有另一个函数,在序列中使用这个函数来增加延迟

 func beginGame(){
    let countdown = SKAction.wait(forDuration: 3)
    let startGame = SKAction.run(self.startGame)
    let startSequence = SKAction.sequence([countdown, startGame])
    **self.beginGame().run(startSequence)**
}
然后,在调用beginGame()函数的同时,调用setup函数。以及最后的设置功能

scene.setup()
scene.beginGame()
我得到一个“元组值'()”没有成员“run”

对不起,这个愚蠢的问题,我是swift的初学者。

试试看

let spawn = SKAction.run { self.createEnemy() }

运行块是一个闭包,因此可能需要括号

试试这个

func startGame() -> SKAction {
    let spawn = SKAction.run { self.hello() }
    let wait = SKAction.wait(forDuration: 2)
    let spawnSequence = SKAction.sequence([wait, spawn])
    let spawnForever = SKAction.repeatForever(spawnSequence)

    return spawnForever
}

func beginGame() {

    let countdown = SKAction.wait(forDuration: 3)
    let startGame = self.startGame()
    let startSequence = SKAction.sequence([countdown, startGame])
}

self.beginGame()
试一试

运行块是一个闭包,因此可能需要括号

试试这个

func startGame() -> SKAction {
    let spawn = SKAction.run { self.hello() }
    let wait = SKAction.wait(forDuration: 2)
    let spawnSequence = SKAction.sequence([wait, spawn])
    let spawnForever = SKAction.repeatForever(spawnSequence)

    return spawnForever
}

func beginGame() {

    let countdown = SKAction.wait(forDuration: 3)
    let startGame = self.startGame()
    let startSequence = SKAction.sequence([countdown, startGame])
}

self.beginGame()

SKActions应该在节点上运行。你的代码行
self.beginGame().run(startSequence)
似乎正在尝试在函数
beginGame()
上运行序列。因为没有定义返回类型的
beginGame()

没有定义返回类型的函数返回类型为的特殊值 无效的这只是一个空的元组,写为()


正如编译器告诉您的,您不能在元组上使用
run

SKActions应该在节点上运行。你的代码行
self.beginGame().run(startSequence)
似乎正在尝试在函数
beginGame()
上运行序列。因为没有定义返回类型的
beginGame()

没有定义返回类型的函数返回类型为的特殊值 无效的这只是一个空的元组,写为()


正如编译器告诉您的,您不能对元组使用
run

我对它进行了一点更改,从StartGame()返回一个SKAction