我的代码中有一个函数,每 30-90 秒随机生成 1 次方。然而,由于某种原因,函数 double 或 tripple 每 3-4 次执行一次。感谢 Ron Myschuk 对它的帮助,直到现在,但它目前还没有完全运行,我希望有人可以阐明它在函数中我犯了错误的地方。
这些函数基本上会选择一个随机间隔等待 30-90 秒,然后触发其中一个电源功能。然后它调用自己并在 30-90 秒之间重新选择一个新的间隔,并选择一个新的随机电源来触发并重复,重复和重复......
func spawnRandomPowerup() {
let waitForNextPowerUp = TimeInterval(CGFloat(arc4random() % 5) + 10)
print("- Next PowerUp spawns in (waitForNextPowerUp) seconds")
self.run(.wait(forDuration: waitForNextPowerUp)) {
let powerup = Int(arc4random_uniform(UInt32(3)))
print("PowerUp: (powerup)")
var spawnPowerUp: SKAction!
if powerup == 0 {
spawnPowerUp = SKAction.run(self.spawnALifePowerUp)
self.run(spawnPowerUp, withKey: "spawningLifePowerUps")
}
else if powerup == 1 {
spawnPowerUp = SKAction.run(self.spawnAShieldPowerUp)
self.run(spawnPowerUp, withKey: "spawningShieldPowerUps")
}
else if powerup == 2 {
spawnPowerUp = SKAction.run(self.spawnARapidFirePowerUp)
self.run(spawnPowerUp, withKey: "spawningRapidFirePowerUps")
}
self.spawnRandomPowerup()
}
}
我厌倦了一些事情,比如用self.removeAllActions((启动函数,但这只会让事情变得更糟。提前感谢您查看此内容。
startGame函数,这导致每次达到100分时都会触发spawnRandomPowerup((调用。
再次感谢罗恩帮我找到这个。从这个家伙身上学到了很多东西!