You'll need to make an array, and every frame add the player's current position to the array. Then pass that array to your enemy, and every frame, loop through the array and set the enemy there. Then delete that. Here's an example:
Add in your player script:
var past_positions = []
func _physics_process(delta):
past_positions.push_back(global_position)
Add in your enemy script:
var future_positions = []
var current_position = 0
func _physics_process(delta):
future_positions = get_parent().get_node("Player").past_positions
global_position = future_positions[current_position]
current_position += 1
Note that where I have (getparent().getnode("Player")), replace "Player" with whatever you player node's name is. Also, you'll have to make sure that the player and the enemy node are both children of your main game node so that the (getparent().getnode()) call will work.
As for killing the player on touch, add an area2d to the enemy, and attach the bodyentered() call to it, and in that function just do body.queuefree(). There are plenty of tutorials on this. I hope this helps, and if you have any questions I'll try to answer them!