Я хочу, чтобы зомби двигались 30 раз в одном случайном направлении и после этого изменяли направление каждого зомби индивидуально. У меня много зомби. Все они НЕ должны двигаться в одном направлении. Я уверен, что мне не хватает чего-то глупого. Мой код:Swift: алгоритм для изменения случайного числа после нескольких циклов
for zombie in Zombies{
if(zombieCounter >= 30){
for zombie in Zombies{
direction = Int(arc4random_uniform(4))
switch direction{
case 0:
zombie.position.y += step
zombie.direction = 1
case 1:
zombie.position.y -= step
zombie.direction = 2
case 2:
zombie.position.x -= step
zombie.direction = 3
case 3:
zombie.position.x += step
zombie.direction = 4
default:()
}
}
zombieCounter = 0
}
}
zombieCounter += 1
Прежде чем я имел этот код:
if(zombieCounter >= 25){
zombieCounter = 0
for zombie in Zombies{
let direction = arc4random_uniform(4)
switch direction{
case 0: zombie.position.y += stepZombie
zombie.direction = 0
case 1: zombie.position.y -= stepZombie
zombie.direction = 1
case 2: zombie.position.x -= stepZombie
zombie.direction = 2
case 3: zombie.position.x += stepZombie
zombie.direction = 3
default:()
}
}
}
Он получает случайное направление для каждого из зомби и перемещает зомби только один раз. То, что я хочу сделать, - это перемещать зомби несколько раз в одном направлении без цикла в случаях. Функция должна быть вызвана один раз. В следующий раз направление должно быть таким же, как в первый раз. После 30 пробегов направление должно быть случайным образом рассчитано для каждого из зомби.
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
if !gameOver{
let step: CGFloat = 5
let stepZombie: CGFloat = 20
var zombieMovement = 20
if(zombieCounter >= 25){
zombieCounter = 0
for zombie in Zombies{
let direction = arc4random_uniform(4)
switch direction{
case 0: zombie.position.y += stepZombie
zombie.direction = 0
case 1: zombie.position.y -= stepZombie
zombie.direction = 1
case 2: zombie.position.x -= stepZombie
zombie.direction = 2
case 3: zombie.position.x += stepZombie
zombie.direction = 3
default:()
}
}
}
zombieCounter += 1
}
}
}
Почему вы перекручивание через 'Zombies' дважды? – Arc676
@ Arc676 Если бы не у каждого зомби было то же самое направление, которое я не хочу. –
Нет, если вы создаете случайное «направление» на каждой итерации. – Arc676