I want to let the zombies move 30 times in one random direction and after that change the direction of every zombie individually. I have multiple zombies. All of them should NOT move in the same direction. I am sure I am missing something stupid. My code:
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
Before I had this code:
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:()
}
}
}
It gets a random direction for each of the zombies and moves the zombie just once. What I want to do is to move the zombies multiple time in the same direction without a for-loop in the cases. The function should be called one time. The next time the direction should be the same like the first time. After 30 runs the direction should be randomly calculated for each of the zombies.
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
}
}
}
Aucun commentaire:
Enregistrer un commentaire