我正在尝试制作一个在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()函数。以及最后的设置功能。</ p>
scene.setup()
scene.beginGame()
我得到了一个&#34;元组的价值&#39;()&#39;没有会员&#39;&#39;&#34;
抱歉这个愚蠢的问题,我是swift的初学者。
答案 0 :(得分:0)
尝试
let spawn = SKAction.run { self.createEnemy() }
和
let startGame = SKAction.run { self.startGame() }
run block是一个闭包,所以它可能需要括号
试试这个......
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()
答案 1 :(得分:0)
SKActions应该在节点上运行。你的代码行
self.beginGame().run(startSequence)
似乎试图在函数beginGame()
上运行您的序列。因为beginGame()
没有定义的返回类型。
没有定义返回类型的函数返回一个特殊的type值 虚空。这只是一个空元组,写成()。
正如编译器告诉你的那样,你不能在元组上使用run
。