Прямоугольник столкновения Box2D - PullRequest
0 голосов
/ 02 ноября 2010

Я использую Box2D для физики в игре, которую я создаю, и я хотел посмотреть, есть ли способ использовать Box2D, чтобы a мог взять прямоугольник и посмотреть, не сталкивается ли он с другим прямоугольником, не занимаясь какой-либо реальной физикой , Пример:

bool RectInRect(rect p1, rect p2)
{
    bool result = Box2D_do_rect_stuff();
    return result;
}

Заранее спасибо!

1 Ответ

1 голос
/ 02 ноября 2010

Предполагая, что rect{x1,y1,x2,y2} и что x1<x2 и y1<y2:

bool RectInRect(rect p1, rect p2)
{
  pair<const int&, const int&> p1x = minmax(p1.x1, p1.x2);
  pair<const int&, const int&> p1y = minmax(p1.y1, p1.y2);
  pair<const int&, const int&> p2x = minmax(p2.x1, p2.x2);
  pair<const int&, const int&> p2y = minmax(p2.y1, p2.y2);

 return max(p1x.first, p2x.first) <= min(p1x.second, p2x.second) &&
    max(p1y.first, p2y.first) <= min(p1y.second, p2y.second);
} 
...