Я следил за видео-гидом Youtube, чтобы сделать игру с астероидами с LibGdx, человеком, который сделал видео, не содержал никаких сенсорных экранов, поскольку они просто делали это для настольной версии. Мне удалось использовать тачпад LibGdx, и у меня он почти работает, но с несколькими проблемами при вращении корабля.Медленно вращающийся объект с использованием тачпада LibGdx
My Touchpad дает значения между - pi и + pi в зависимости от угла (правая сторона равна 0, нижняя - отрицательные значения, верхний - положительный). То же самое касается направления, с которым корабль сталкивается.
Проблема заключается в том, что, когда корабль медленно вращается, если ваш с левой стороны и изменяется с -pi на + pi с помощью тачпада, корабль будет вращаться вокруг длинного пути. Каждое решение этого, что я придумал, вызвало проблему еще где. Мое последнее решение ниже, я думал, работал, но имеет ту же проблему только в другой области.
Радианс находится в направлении корабля в настоящее время. touchPad Направление - это направление, в котором находится тачпад. Оба в радианах.
if (radians < touchPadDirection){
if(radians - touchPadDirection < MathUtils.PI && touchPadDirection > MathUtils.PI /2 && radians < MathUtils.PI /2) {
System.out.println("1st choice");
setRight(true);
setLeft(false);
}else{
System.out.println("3rd choice");
setLeft(true);
setRight(false);
}
}
if (radians > touchPadDirection) {
if(radians - touchPadDirection > MathUtils.PI && touchPadDirection < MathUtils.PI /2 && radians > MathUtils.PI /2) {
System.out.println("2nd choice");
setRight(false);
setLeft(true);
}else{
System.out.println("4th choice");
setRight(true);
setLeft(false);
}
}
}
Единственные проблемы вращения, которые я нашел с помощью Google, кажется, чтобы помочь, если элемент немедленно поворачивается, как это будет просто смотреть на направление судна. Поэтому мне нужно как-то заставить его постоянно вращать правильный путь (всегда вращаться в зависимости от того, какое направление будет быстрее). Помните, что значения находятся между -3.14 и 3.14, и исходная проблема возникает, когда небольшое изменение заставляет корабль вращаться долго.
Я не лучший из тех, кто объясняет, что, надеюсь, кто-то понимает, чего я пытаюсь достичь и заблаговременно.