![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | Timofey |
I use this function to move the player, but the flip doesn’t work. when I try scale.x = -10 it seems to multiply by -1, thus constantly flipping in the opposite direction than a moment ago.
func _move() -> void:
var horizontal := Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
var vertical := Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
var vector := Vector2(horizontal, vertical)
if vector == Vector2.ZERO:
if current_state == 'run':
_set_animation('idle')
else:
if current_state == 'idle':
if horizontal == 1:
scale.x = 10
elif horizontal == -1:
scale.x = -10
_set_animation('run')
move_and_slide(vector.normalized() * move_speed)
I solve the problem. most likely this bug is related only to this class, with other classes it works fine. You should either change the node type or replace scale.x with transform.x.x.
Timofey | 2021-10-02 17:20
Thanks a lot! I have the same Issue in Godot 3.4.3 and transfrom.x.x works, but I am interested in why does transform.x.x do the same?
Covenauta | 2022-03-15 00:54