Вы можете получить direction
и speed
из vector
, произведенного джойстиком.Обычно на входе джойстика генерируется нормализованная 2-мерная позиция, значения x и y которой находятся в диапазоне от -1 до 1. Например, Up - это (0, 1.0), Right - (0, 1.0), Left - (-1.0, 0) и Down - это(0, -1,0).Если у вас есть этот входной вектор, вы можете получить два значения.
direction = normalize( input_vector );
speed = length( input_vector ) * SCALE_CONSTANT;
// SCALE_CONSTANT is a custom value to get a real speed.
Установите вектор look-at
вашего персонажа (это нормализованный вектор, представляющий текущее направление персонажа) на direction
.Если вы хотите плавно повернуть символ, выполните интерполяцию с текущего вектора look-at
на direction
в своем обновлении.
Обновите position
вашего персонажа с помощью speed
new_position = current_position + look-at * speed * time;
Вы можете видеть два движения: вращение и перемещение вперед.Люди обычно устанавливают две разные скорости, чтобы контролировать их.Вы также можете сделать по одному, например, сначала вращение, а затем пересылку.Удачи!:)
[ОБНОВЛЕНИЕ]
Ну, если вы не хотите вращать его, вы можете просто сделать шаг 2 с «направлением» вместо «просмотра».Кроме того, вы можете получить «вектор ввода», вычитая center position
джойстика из the actual movement
(я полагаю, что это позиция из джойстика), а затем нормализуйте его.