extends Enemy func _ready() -> void: set_physics_process(false) velocity.x = -40 func _physics_process(delta: float) -> void: velocity.y += _gravity * delta if is_on_wall() or is_at_ledge(): velocity.x *= -1.0 velocity.y = move_and_slide(velocity, FLOOR_NORMAL).y func is_at_ledge(): for raycast in $LedgeDetectorRays.get_children(): if !raycast.is_colliding(): return true return false