2015-05-15 3 views
0

Я пытаюсь использовать 2 эллипса для обнаружения столкновения, если они перекрываются. Мне нужно вращать эллипсы, но я не могу понять, как это работает. Я работаю с классом com.badlogic.gdx.math.Ellipse, но, похоже, у него нет метода для вращения. Есть идеи? Thx заранее!Вращающийся эллипс Libgdx для обнаружения столкновений

ответ

0

К сожалению, LibGDX не имеет встроенных вращающихся функций для эллипсов.

Вместо этого я либо прибегаю к кругу, в котором вращение не имеет значения, либо использование полигонов для проверки пересечения.

Polygons сформированы с помощью массива значений поплавка (вершин), где каждый четный элемент массива представляет собой горизонтальную составляющую (x) и нечетную вертикальную составляющую (y).

Polygon polygon1 = new Polygon(vertexSet1); 
Polygon polygon2 = new Polygon(vertexSet2); 

Затем с помощью Intersector, вы можете проверить, является ли пересекались эти многоугольники. Чем больше вершин, тем точнее будет ваша фигура. Просто помните, что у вас есть 6 или более элементов в массиве вершин, поскольку 6 поплавков будут давать 3 (x, y) точки, что является минимальным значением для многоугольника.

if (intersector.overlapConvexPolygons(polygon1, polygon2) { 
    //do your intersection code 
} 

Полигоны должны сами команды переводить, масштабировать и вращать, что позволяет вращения вы упомянули выше.

Смежные вопросы