I am aware that one can control the RigidBody directly using the state argument in the _integrate_forces method. However, how does this help over using the _physics_process method and controlling the RigidBody indirectly? With the _physics_process method one can also control for time with the delta argument.
For example:
# Using _integrate_forces, moves the player left when pressing the move_left button.
func _integrate_forces(state):
if Input.is_action_pressed("move_left"):
state.linear_velocity.x += -movement_speed
# Using _physics_process, moves the player left when pressing the move_left button.
func _physics_process(delta):
if Input.is_action_pressed("move_left"):
apply_central_impulse(Vector2(-movement_speed, 0))
These have the same result, except theoretically, one could control for time in the _physics_process method.
Why shouldn't I always use the _physics_process method instead?