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?
Ich habe also eine Kollisionstestmethode zwischen einem Kreis und einem Polygon erstellt. Zumindest funktioniert es für mich.
Hier ist der Code:
%Vor%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%... 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%}
Tags und Links java collision-detection libgdx polygon circle