Problemas de animación del enemigo en Godot.
He creado un enemigo para mi juego RPG 2D en Godot, pero utilicé AnimationPlayer y no sé cómo hacer que mi enemigo me siga con las animaciones correctas.
onready var sprite = $AnimationPlayer
onready var stats = $Stats
onready var playerDetectionZone = $PlayerDetectionZone
func _physics_process(delta):
knockback = knockback.move_toward(Vector2.ZERO, FRICTION * delta)
knockback = move_and_slide(knockback)
match state:
IDLE:
velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta)
seek_player()
WANDER:
pass
CHASE:
var player = playerDetectionZone.player
if player != null:
var direction = (player.global_position - global_position).normalized()
velocity = velocity.move_toward(direction * MAX_SPEED, ACCELERATION * delta)
velocity = move_and_slide(velocity)
func seek_player():
if playerDetectionZone.can_see_player():
state = CHASE
func _on_Hurtbox_area_entered(area):
stats.health -= area.damage
knockback = area.knockback_vector * 65
func _on_Stats_no_health():
queue_free()
var enemyDeathEffect = EnemyDeathEffect.instance()
get_parent().add_child(enemyDeathEffect)
enemyDeathEffect.global_position = global_position
davy.ai
Para hacer que tu enemigo te siga con las animaciones correctas, deberás agregar una nueva animación a tu nodo AnimationPlayer que corresponda al movimiento del enemigo hacia el jugador.
A continuación, dentro de tu código, deberás llamar a la nueva animación cuando se detecte al jugador y el estado esté configurado como CHASE. Para hacer esto, modifica la sección
CHASE
de tu función_physics_process
para incluir el siguiente código:Este código hará que el enemigo se mueva hacia el jugador con la animación correcta reproduciéndose. Puedes ajustar la velocidad de la animación y la velocidad de movimiento a tu gusto. ¡Buena suerte con tu juego!