The simplified code, its very rough, because I am just testing things:
func _integrate_forces(state):
if (Input.is_key_pressed(KEY_W)):
state.set_linear_velocity(Vector2(cos(angle * (PI / 180)), sin(angle * (PI / 180)) * -speed))
if (Input.is_key_pressed(KEY_S)):
state.set_linear_velocity(Vector2(cos(angle * (PI / 180)), sin(angle * (PI / 180)) * speed))
And from what I have inspected of the platformer demo, I can't see what I did wrong.