class_name Enemy extends Area2D @onready var right_cast = $RightCast @onready var left_cast = $LeftCast @onready var right_floor_cast = $RightFloorCast @onready var left_floor_cast = $LeftFloorCast @onready var sprite = $AnimatedSprite2D signal playerDamage const speed = 60 var direction = 1 # Called when the node enters the scene tree for the first time. func _ready(): pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if right_cast.is_colliding(): if not right_cast.get_collider().is_in_group("player"): direction = -1 sprite.flip_h = true elif left_cast.is_colliding(): if not left_cast.get_collider().is_in_group("player"): direction = 1 sprite.flip_h = false if not right_floor_cast.is_colliding(): direction = -1 sprite.flip_h = true elif not left_floor_cast.is_colliding(): direction = 1 sprite.flip_h = false position.x += direction * speed * delta func _on_body_entered(body): if body.is_in_group("player"): playerDamage.emit()