Я пишу простую игру Bullet Hell в Swift 4 и создаю шаблоны для разных типов врагов.Когда я вызываю функцию run в didMove, я хотел бы запустить созданную мной функцию, чтобы решить, какой шаблон запустить.Я хочу, чтобы по одному шаблону запускался одновременно.
В настоящее время, когда вызывается функция запуска и начинается цикл, функция решить () вызывается один раз, возвращая одно действие 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()))
}
}
Я хочу, чтобы функция принятия решениянеоднократно вызываться каждый раз.Когда один набор кораблей закончен с его нерестом и прочим, я хочу, чтобы он выбрал, продолжать или начинать создавать новые корабли.