I recomend you to look to state machine pattern ( https://www.youtube.com/watch?v=4bdiyOGHLtM) and watch other tutorials about basic platformer.
It's a bit hard to tell you what exactly do, because there is so many way.
But here one, very simple for very basic IA.
The idea is to have differents behaviour for each states ; idle, patrol, chasing
When the enemy will detect the player, you should change state, for example "chassing". Then in the process function call the fuction corresponding to a state.
Here's some pseudo code to get the logic. You should adapt it to suit your code mouvement logic
extends Node
class_name Enemy
var state = "Idle"
var speed = 5
func _process(delta):
if state == "idle":
idle()
else if == "chasing":
chasing()
else:
patrol()
func idle():
# Idle stuff
func patrol():
# Patrol stuff
func chasing()
# You should stock or create a function to acces to the position player
var player_position = get_player_position()
move_to(player_position)
If you don't understand how get the direction works, please read https://docs.godotengine.org/en/3.2/tutorials/math/vector_math.html
func move_to( pos : Vector2):
var direction = pos - self.position
var normalized = direction.normalized()
self.position += normalized * speed * delta
func _on_Body_entered(body):
# You should check somewhere is the body, is the player
state = chasing
func _on_Body_exited(body):
# You should check somewhere is the body, is the player
state = patrol
And I repeat, but this is some basic code, note perfect, can be improve, but working for simple purpose and when you're begining IA.