Hat XNA ein Polygon, wie Rectangle?

8

Ich mache ein Spiel, bei dem es nur einen bestimmten Platz gibt, um den sich der Spieler bewegen kann. Ich möchte diesen Raum mit einem Polygon von irgendeiner Art darstellen. Die wichtigste Frage, die ich stellen möchte, ist, ob sie einen bestimmten Punkt enthält. (Wie rect.intersect() )

Hat XNA irgendeine Möglichkeit, dies zu tun?

    
Nick Heiner 04.03.2010, 14:07
quelle

2 Antworten

8

Nein. (Nicht bis einschließlich Version 3)

XNA hat Begrenzungsvolumen wie Kegelstümpfe oder -Kästchen , aber es hat keine Ahnung von Polygonen.

Eine einfache, schnelle und effektive Art, einen Punkt im Polygon mit XNA auszuführen, finden Sie hier . Ich habe das kürzlich implementiert und es war ausgezeichnet.

Sie kennen den Punkt Ihres Objekts, Sie müssen lediglich ein Polygon erstellen, das dieses Objekt umgibt - die Verwendung von Vektoren wäre die beste und einfachste Methode. Führen Sie dann den Punkt in der Polygonprüfung aus.

Hier ist der Beispielcode meiner Implementierung. Die Standardpunktklasse in XNA wird verwendet. Polygon ist eine einfache Klasse, die eine Sammlung von Vektoren enthält, die das Polygon bilden.

%Vor%

Die Polgyon-Klasse ist sehr einfach, in Halb-Pseudo-Form:

%Vor%

Die Polygonklasse könnte sehr einfach eine Sammlung von Vektoren speichern, aber ich habe eine Linienklasse eingeführt, da Linien woanders benötigt wurden.

    
Finglas 04.03.2010 14:20
quelle
1

Die foreach-Schleife wurde so geändert, dass alle Polygonformen bearbeitet werden können:

%Vor%     
ViNull 17.09.2012 23:22
quelle

Tags und Links