Witam.
Jestem w trakcie pisania gierki w której muszę wykorzystać kolizje. Ogólnie z tym nie mam problemu, bo znalazłem fajny tutorial ale pojawił się inny kłopot.
Kolizję rozwiązuje przy pomocy prostokątów i metody intersect. Coś mniej wiecej tak:
Rectangle playerBounds = player.getBounds();
for(int i=0;i<walls.size();i++){
Actor a1 = (Actor)walls.get(i);
Rectangle r1 = a1.getBounds(); //getBonds() zwraca prostokąt na podstawie wysokości i szerokości grafiki
if (r1.intersects(playerBounds)) {
player.collision(a1);
break;
}
}
U góry akurat są to kolizje gracza ze ścianami.
Problem jest następujący: mam również obiekty które w swoim ruchu obracają się o pewien kąt (dokłądnie są to kamery które są umieszczone w kątcie pomieszczenia i "pilnują" danego obaszaru). Niestety w ich wypadku powyższa metoda nie działa do końca ponieważ tworzony prostokąt r1 jest zawsze tylko pozycją początkową w której ładuje początkowo grafikę kamery. Nie mam pomysłu jak uwzględnić kąt obrotu kamery przy wykrywaniu kolizji w powyższy sposób (jeśli w ogóle się da) i tu potrzebowałbym czyjejś rady.
Z góry dzięki za pomoc.