Ich spiele mit PyGame herum.
Jetzt versuche ich, einen QIX- Klon zu implementieren .
Ich habe meine Spielschleife und kann den Spieler (Cursor) auf dem Bildschirm bewegen.
In QIX hinterlässt die Bewegung des Players eine Spur (Schwanz) auf dem Bildschirm, wodurch eine Polylinie erstellt wird.
Wenn die Polylinie mit den Bildschirmgrenzen ein Polygon erstellt, wird der Bereich gefüllt.
Wie kann ich dieses Verhalten erreichen?
Wie speichere ich den Schwanz im Gedächtnis?
Wie erkennt man, wann eine geschlossene Form entsteht, die gefüllt werden soll?
Ich brauche keine exakte funktionierende Lösung, einige Hinweise, Algo-Namen wären cool.
Zu Beginn gibt es nur den grauen Rand, an dem der Spieler seinen Cursor bewegen kann.
- Erstes Szenario:
Der Benutzer bewegt seinen Cursor von Punkt A durch Punkt B und zeichnet die rote Mehrfachlinie bis Punkt C. An diesem Punkt sollte der Punkt A aufgrund des Grenzübertritts automatisch mit Punkt C verbunden werden, wodurch ein Polygon erstellt wird, das gefüllt werden sollte ( das orangefarbene Zeug auf meiner Zeichnung). Das Füllen des Polygons ist in PyGame verdammt einfach, da ich die Folge von Punkten gebe und PyGame sich um den Rest kümmert.
- Zweites Szenario:
Der Benutzer bewegt sich am Rand zu Punkt D, von wo aus er eine Linie zu Punkt E zeichnet. Da er die Linie des vorherigen Polygons kreuzt und mit seinen Linien und dem Rand ein weiteres Polygon erstellt werden kann, sollte es ebenfalls gefüllt werden. (der Grüne).
- Drittes Szenario:
Der Spieler bewegt sich weiter auf dem Polygon (er kann sich auf vorhandenen Polygonlinien bewegen) und zeichnet eine Linie von Punkt G zu Punkt F. Auch hier sollte aufgrund des Rahmens und der vorhandenen Linien ein anderes Polygon gefüllt werden (das blaue). .