Кстати, есть еще один подход для этой проблемы. Вы можете перераспределить скорость по осям X и Y, чтобы сохранить общую скорость, но сделать их независимыми друг от друга при движении по диагонали. Вот как это сделать: 1. Нормализуйте вектор движения, чтобы получить его направление: ```gdscript var input_vector = Vector2(x_input, y_input) var normalized_vector = input_vector.normalized() ``` 2. Получите текущую скорость по осям X и Y: ```gdscript var current_speed_x = velocity.x var current_speed_y = velocity.y ``` 3. Для движения по осям X и Y, умножьте их на соответствующие компоненты нормализованного вектора: ```gdscript var movement_vector = Vector2(current_speed_x * normalized_vector.x, current_speed_y * normalized_vector.y) ``` 4. Примените измененное движение с использованием функции `move_and_collide`: ```gdscript move_and_collide(movement_vector, Obj_collision) ``` Теперь, при движении по диагонали, скорости по осям X и Y будут независимыми и не будут складываться. Это позволит вам достичь желаемого эффекта при движении. Надеюсь, это поможет вам решить вашу проблему!