Поворот персонажа относительно джойстика в Godot

Я создаю игру с видом сверху в Godot, на телефон. Я скачал джойстик из ассетов, настроил его, и у меня получилось что теперь главный герой может ходить. Но вот есть проблема, он смотрит в одну сторону. И конечно я хочу сделать так, что бы он смотрел туда, куда джойстик указывает. Проблема не большая, и лёгкая в решении вроде бы, но я всё равно не особо понимаю как это можно реализовать. Код персонажа:

extends KinematicBody2D

var speed = 200
var velocity = Vector2()
var direction = Vector2.ZERO

func _physics_process(_delta: float) -> void:
    move_and_slide(velocity * speed)


func _on_VirtualJoystick_analogic_chage(move):
    velocity = move

Ответы (2 шт):

Автор решения: Oyunsky

Не проверял, как работает на джостике, но думаю, суть одинакова для всех.

look_at(global_position + direction)

Godot 4

extends CharacterBody2D

const SPEED: float = 200.0

func _physics_process(delta: float) -> void:
    var direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
    look_at(global_position + direction)
    velocity = direction * SPEED
    move_and_slide()

Предпросмотр

Godot 3

# player.gd
extends KinematicBody2D

const SPEED: float = 250.0

# Направление игрока (куда он смотрит)
var direction: Vector2 = Vector2.ZERO

func _physics_process(delta: float) -> void:
    # Высчитываем направление 'взгляда' игрока
    look_at(global_position + direction)

    move_and_slide(direction * SPEED)

# Сигнал от джостика (параметр `move`, то же самое, что и `direction`)
func _on_joystick_analogic_chage(move: Vector2) -> void:
    # Переопределяем `direction`
    direction = move

Предпросмотр

→ Ссылка
Автор решения: Человек

У меня получилось сделать поворот персонажа. Я опять изменил плагин на самый распространнёный "Virtual Joystick в Godot 3" от "MarcoFazio", и нашёл там тестовую сцену, в которой было всё это реализованно.

Код я написал в самом Анимационном Спрайте, и добавил ему значение в инспекторе для Joystick Left Path на Левый джойстик передвижения, и Joystick Right Path на правый - поворота. И в итоге у меня получился вот такой код Спрайте Анимационном:

extends AnimatedSprite

export (NodePath) var joystickLeftPath
onready var joystickLeft : VirtualJoystick = get_node(joystickLeftPath)

export var speed : float = 100

export (NodePath) var joystickRightPath
onready var joystickRight : VirtualJoystick = get_node(joystickRightPath)

func _process(delta: float) -> void:

    var move := Vector2.ZERO
    move.x = Input.get_axis("ui_left", "ui_right")
    move.y = Input.get_axis("ui_up", "ui_down")
    position += move * speed * delta

    if joystickRight and joystickRight.is_pressed():
        rotation = joystickRight.get_output().angle()
→ Ссылка