2015-10-18 3 views
0

Я использую libgdx, и я вычислял перекрывающийся процент из двух прямоугольников.libgdx вычисляет перекрывающийся процент?

На самом деле это перекрытие актера и прямоугольник, добавленный к другому Актеру.

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

И если есть 50% перекрытие, я хочу выделить. Затем, если актер, который тащится близко к другому, будет выпущен с прикосновением, я позволю ему приблизиться к другому актеру.

Так что это не просто обнаружение коллизии, мне нужно знать, как сильно они сталкиваются.

+1

Это чисто математический вопрос, и если вы будете искать только немного, вы найдете ответ на свой вопрос : http://math.stackexchange.com/questions/99565/simplest-way-to-calculate-the-intersect-area-of-two-rightangles Чтобы вычислить процентное разделение по площади прямоугольников актеров. –

+0

Я думаю, вам нужно реализовать расчет, который не должен быть таким сложным. Просто вычислите перекрытие, если столкновение истинно. Не должно быть трудно, так как у вас есть размеры. – BennX

ответ

1

Вы можете легко достичь этого, используя класс Libgdx Intersector. Вам нужно будет создать два Rectangles и третью за результат - все, что вам нужно сделать, это проверить области после того, как пересекающие их

Actor a,b; 

    ... 

    Rectangle r = new Rectangle(a.getX(), a.getY(), a.getWidth(), a.getHeight()); 
    Rectangle s = new Rectangle(b.getX(), b.getY(), b.getWidth(), b.getHeight()); 

    Rectangle result = new Rectangle(); 

    Intersector.intersectRectangles(r, s, result); 

    if(result.area() >= 0.5f * r.area()) 
    { 
     //do something if result area is equal to 50% a Actor area or more... 
    } 
+0

Спасибо, это именно то, что я искал. –