You can call move_local_x within _on_area_entered; for a 2D game a 0.01 pixel difference should be very very hard to see. Can you explain a little more about the issue you are having, what caused you to write this code in the first place? What is the big picture problem?