我的代码中有一个函数,每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()启动函数,但这只会让事情变得更糟。提前感谢您查看此内容。
答案 0 :(得分:0)
我在startNewLevel函数中发布了spawnRandomPowerup()调用而不是startGame函数,这导致每次达到100点时都会触发spawnRandomPowerup()调用。
再次感谢Ron帮助我找到这个。从这个家伙那里学到很多东西!