Das Spielfeld (Map)

erstellt am 19. September 2007 um 21:04

Da wir die Kachel-Technik im vorherigen Artikel erklärt haben, bietet es sich nur an, diese Technik für die Generierung unseres Spielfeldes zu benutzen.

Spielfeld Wie wir an diesem Bild links erkennen können, ist das Spielfeld eine zwei dimensionale Fläche, die sich in Spalten und Zeilen untergliedern lässt. Das programmiertechnische Pendant in C# dazu wäre ein zwei dimensionales Array. Wem diese Datenstruktur nicht geläufig ist, so möchte ich ihn/sie an dieser Stelle auf die MSDN Online Bibliothek aufmerksam machen, in der Arrays ausführlich erklärt werden.

Array Spielfeld Betrachten wir unser Spiel aus der Sicht eines Arrays, so beginnt die Adressierung der Spalten und Zeilen jeweils bei 0. In unserem Beispiel besteht das Spieldfeld aus 10 Spalten und 6 Zeilen, was genau 60 Kacheln entspricht. Die blau markierte Kachel würden wir also wie folgt ansprechen:

Also halten wir fest, dass ein Spielfeld auf einer bestimmten Anzahl an Spalten und einer bestimmten Anzahl an Zeilen beruht, deren Produkt die Anzahl der benötigten Kacheln ergibt. Klingt recht einfach, oder? Und ja, das ist es auch.

Was uns also noch fehlt, sind die Kacheln. Welche Eigenschaften können Kacheln den gebrauchen?
Eine bestimmte Höhe und Breite wäre sicherlich sinnvoll. Wie sieht es mit der Eigenschaft aus, ob das Feld begehbar ist oder nicht? Denn nicht alle dargestellten Kacheln auf dem Spielfeld können von unserem Helden (Spielfigur) betreten werden. Eine Mauer oder Wasser sind je nach Spielprinzip nicht begehbar. Diese drei Eigenschaften für eine Kachel sollte uns fürs erste reichen.

Somit hätten wir schon ein wenig beschrieben, wie ein Spielfeld und die darin befindlichen Kacheln aufgebaut sind. Was ist noch fehlt, um mit dem Programmieren endlich anzufangen ist das Format des Spielfeldes. Die Frage, die sich uns an dieser Stelle stellt ist, wie speichern wir unser Spielfeld ab?
Klar in einem Array, aber woher wissen wir, welche Kachel begehbar ist und welche nicht? Wie werden diese identifiziert? In unserem Fall gestaltet sich die Lösung des Problems recht einfach. Wir unterscheiden vorerst nur zwei Zustände, begehbar oder nicht begehbar. Also würde ich die Zahl 1 für den Zustand nicht begehrbar definieren und die Zahl 0 für den Zustand begehbar.

Spielfeld begehbar Um ein Spielfeld, wie wir es hier im linken Bild sehen, aufzubauen, müssen wir für jede schwarze Kachel eine 1 und für jede weiße Kachel eine 0 schreiben. in C# sieht das folgendermaßen aus:

Man könnte das Format des Spielfeldes sicherlich auch in eine seperate Datei auslagern, sei es XML, TXT oder ein eigenes Dateiformat. Ich habe mich für das 2D Array entschieden, weil es erstens für kleine Spiele die gängiste Methode ist, zweitens es die Kollisions- und Pfadberechnung relativ einfach macht und drittens es zahlreiche Beispiele im Internet gibt, die auf dieser Methode aufbauen. Wieso sollten wir uns dann das Leben schwerer machen?

Im nächsten Artikel werden wir dann endlich anfangen unsere Gedanken in C# Code umzuwandeln. Wir konstruieren uns mit Expression Blend eine Kachel und bauen mit dieser Kachel unser erstes Spielfeld auf. Man darf also gespannt sein ;-)

Kommentieren

Eintrag kommentieren