Koordinatenverwaltung in einem Weltraum-Spiel

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Antworten
Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Koordinatenverwaltung in einem Weltraum-Spiel

Beitrag von Orioner » Mi Mär 22, 2023 9:01 am

Ich möchte ein Spiel programmieren, bei dem der Spieler von Quadrant zu Quadrant fliegt, dort die feindlichen Schiffe auspürt und diese bekämpft.

Dazu gibt es eine Quadranten-Karte und eine Sektor-Karte. Beide Karten bestehen aus 8x8 Feldern. Die Gesamtheit der Felder der Quadrantenkarte repräsentieren das Universum. Jeder Quadrant des Universums ist noch einmal unterteilt in 8x8 Sektoren, das eigentliche Spielfeld, denn hier werden die Kämpfe ausgefochten. Als Waffen stehen Torpedos und Laser zur Verfügung, mit denen man Objekte im Quadranten (in der Regel Feindschiffe) anvisiert.

Das ganze Universum besteht in der Summe aus 64x64 = 4096 Sektoren. Jetzt ist die Frage: Wie orgainiseren ich die Sektoren? Würdet ihr alles in einem großen Array vorhalten, mit 64x64 Sektoren? Oder würdet ihr die Quadranten in einem Array von 8x8 Feldern vorhalten und in jedem dieser 8x8 Feldern noch ein Unterarray anlegen, welches auch wieder 8x8 Felder hat?

Wenn man die erst Variante nimmt, muss man berechnen, wo sich das Spielerraumschiff befindet und den richtigen Quadranten in der Sektor-Karte abzubilden. Zu beachten ist auch, dass man die Entwernungen von weit entfernten Positionen berechnen können muss. Dies ist möglicherweise bei der zweiten Variante schwieriger zu erreichen.

Zur Veranschaulichung habe ich mal einen Screenshot vom Spiel-Interface angehängt.
universe.png
Links: Sektor-Karte, rechts: Quadranten-Karte (Universum)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten