Circle und Polygon Collision mit Libgdx

8

Gibt es einen Weg in Libgdx, um eine Kollision zwischen einem Polygon und einem Kreis zu überprüfen?

Ich habe die Klasse Intersector gesehen, aber nur einen Kollisionstest für Circle und Rectangle gefunden. Was ist mit einem anderen Polygon?

Wenn ich es manuell machen muss, was ist der beste Weg, dies mit Libgdx zu tun?

    
Cristiano Santos 10.03.2013, 15:10
quelle

3 Antworten

10

Ich habe also eine Kollisionstestmethode zwischen einem Kreis und einem Polygon erstellt. Zumindest funktioniert es für mich.

Hier ist der Code:

%Vor%     
Cristiano Santos 20.03.2013, 22:59
quelle
9

Leider habe ich nicht genügend Reputation um zu kommentieren, also füge ich das als eine andere Antwort hinzu ...

Cristiano's ausgezeichnete Antwort funktioniert, um zu überprüfen, dass der Kreis eines der Liniensegmente des Polygons überlappt, aber es prüft nicht den ungewöhnlicheren Fall, dass der Kreis vollständig innerhalb des Polygons enthalten ist, was bei einem kleinen Fasten passieren könnte beweglicher Kreis kollidierte mit einem großen Polygon.

Ich habe den Code von Cristiano unten mit einer kleinen Änderung wiederholt, um das Problem zu beheben ...

%Vor%     
Phil Anderson 29.04.2015 08:44
quelle
0

... und um Phil Anderson's ausgezeichnete Antwort weiter zu verfolgen, hier ist meine Version, die einfach vermeidet, neue Vector2s bei jedem Check zu erstellen und stattdessen statische Instanzen von Vector2 wieder verwendet.

%Vor%

}

    
Bobbo Biggins 31.01.2018 12:55
quelle