Учитывая, что аналоговые джойстики выводят значения
float xaxisval = controller->left_stick_x_axis(); //-1 is left, 1 is right
float yaxisval = controller->left_stick_y_axis(); //-1 is up, 1 is down
Значения варьируются от 0 до 1, с которыми можно использовать чувствительность.
Я перемещаю персонажа в направлении джойстика в трехмерной среде так же, как в игре, такой как Diablo.Я добавляю и убираю эти значения из положения X и Z, чтобы переместить его.Но персонаж всегда сталкивается с одним и тем же увлечением.Как я могу использовать эти значения и преобразовать их в градусы?
xaxisval += controller->left_stick_x_axis() /100;
yaxisval += controller->left_stick_y_axis() /100;
distAdjust.SetTranslation(Vector4(xaxisval, 0, yaxisval));
rotateAdjust.RotationX(rotateDegrees);
player_->set_transform(player_transform *distAdjust *rotateAdjust)
У меня проблема в том, что движение работает только с фиксированным вращением, если я поворачиваю объект, то он движется в другом направлении.