Hello, I've been trying for hours and I can't seem to be able to make my enemies move at least decently in my game. Here's my code for the enemy movement in _physics_process:
if (player.translation.distance_to(self.translation) < 30):
nextPosition = player.global_transform.origin
if (self.global_transform.origin.distance_to (nextPosition) < 1):
nextPosition = Vector3 (rand_range(self.translation.x - radius,self.translation.x + radius), self.translation.y, rand_range(self.translation.z - radius,self.translation.z + radius))
var enemy_walk_speed = 0.3
var dist = nextPosition - self.global_transform.origin
dist = dist.normalized ()
collision = enemy.move_and_collide(dist * enemy_walk_speed)
dir = dist
if (collision):
if(!playerDamaged && collision.get_collider().is_in_group("Player")):
player.get_node("SoundEffects").stream = character_hurt_sfx
player.get_node("SoundEffects").play()
player.health -= damage
playerDamaged = true
damageTimer.start(2)
elif (collision != previousCollision):
print (nextPosition)
randomize()
nextPosition = Vector3 (rand_range(self.translation.x - radius,self.translation.x + radius), self.translation.y, rand_range(self.translation.z - radius,self.translation.z + radius))
previousCollision = collision
velocity.y += -delta * GRAVITY
var motion = velocity * delta
enemy.move_and_collide(motion)
The enemy just ignores the player and keeps moving until he's stuck at a wall. XD
Any ideas on how I can make this work?