I have a scene like that when my body entered area mob follows or when body exited mob stops etc. but when my mob respawn mob didnt followed bcs I used body_entered and body_exited codes when mob respawned if player in area mob didnt know it so its playing idle
Code
if not global.mob_alive:
return
if player_chase and global.mob_alive and global.player_alive:
position +=(player.position - position)/speed
$AnimatedSprite2D.play(“walk”)
else:
$AnimatedSprite2D.play(“idle”)
func _on_area_2d_body_entered(body):
player = body
player_chase = true
@warning_ignore(“unused_parameter”)
func _on_area_2d_body_exited(body):
player = null
player_chase = false
Using overlaps_body() instead of signals would be preferable here.
# store the player and area2D references in a variable
var player = $path_to_player #replace with an actual node path!
var area = $Area2D
func _process(_delta):
if global.mob_alive and global.player_alive and area.overlaps_body(player):
position += (player.position - position) / speed
$AnimatedSprite2D.play(“walk”)
else:
$AnimatedSprite2D.play(“idle”)