我正在Swift 4中编写一个简单的子弹地狱游戏,并为不同类型的敌人制作了生成模式。当我在didMove中调用run函数时,我想运行一个我决定要运行哪种模式的函数。我希望一次运行一个模式。
当前,当调用run函数并开始循环时,一次调用define()函数,并返回一个SKAction,该SKAction在整个游戏中都会重复执行。
我尝试制作积木,弄乱序列以及各种各样的东西,但没有一个能达到预期的效果。
// Chooses what spawning patterns will be used
// Returns an SKAction
func decide() -> SKAction{
// Randomizer for spawning patterns
let n = arc4random_uniform(10)
print(n)
var chosenPattern = SKAction.run {}
if n > -1 && n < 5 {
chosenPattern = spawnPattern2
}
else{
chosenPattern = spawnPattern1
}
print(chosenPattern)
return chosenPattern
}
override func didMove(to view: SKView) {
backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0,
alpha: 1)
initialize()
update(0)
defineSpawnPatterns()
if isGameOver != true{
run(SKAction.repeatForever(decide()))
}
}
我希望每次都重复调用决策函数。当一组船只完成产卵和填充后,我希望它选择是继续还是开始产卵新船。