Breakout: Steinwand

Nun sollen die Steine ins Spielfeld eingebettet werden. Dafür wird ein Klasse SteinWand eingeführt, welche die Steine dann in einer Liste verwaltet.

Bei der Programmierung hat es sich ergeben, dass mit den Steinen auch gleich die ganze Wand eingeführt wurde. Eine Trennung der Arbeitsschritte war überflüssig und unpraktisch. Dieser Punkt war auch recht einfach.

Breakout mit Steinwand

Weiterlesen

Breakout: Spielfeld und Schiff

Das Spielfeld mit beweglichem Schiff ist nun fertig.

Bei der Erstellung sollten diese Punkte berücksichtigt werden:

  • Das Spielfeld soll sich in zwei Bereiche aufteilen. Eines zur Anzeige von Daten wie Punktestand und Level, ein weiteres für das eigentliche Spielfeld. Das Spielfeld soll nicht fix sein, sondern vergrößerbar, bis hin zum Vollbildmodus.
  • Alle Interaktionen (z.B. zwischen Formular und Schiff) werden über einen Controller gesteuert.
  • Alle Zeichenoperationen sollen über eine Klasse Renderer gehen, welcher dann die Zeichenmethoden der einzelnen Instanzen aufruft.
  • Neben dem Formular sind folgende Klassen sind zu erstellen: Spielfeld, Schiff, Controller und Renderer

Hier das Klassendiagramm:

Klassendiagramm Spielfeld mit Schiff

Und hier der Quellcode zum runterladen:  Quellcode_Step01

Im nächsten Schritt geht es mit dem Ball und den Wänden weiter…

Projekt Breakout

Um noch mehr Erfahrung in C# zu sammeln habe ich mir überlegt einen Clone des Arcade Klassikers Breakout zu erstellen. Ich unterteile das Projekt in einzelne Schritte. Das wären:

  1. Spielfeld mit beweglichen Schiff
  2. Ball der sich im Spielfeld bewegt und von den Wänden und dem Schiff abprallt.
  3. Einführen von Steinen die bei Ballkontakt zerstört werden.
  4. Eine ganze Wand von Steinen  als ersten Level.
  5. Ein Leveleditor in welchen der Anwender Steinwände definieren kann.
  6. Level aus Leveleditor ins Spiel einbinden und mehrere Level hintereinander spielen.
  7. Einführen von Sondersteinen mit verschiedenen Verhalten bei Ballkontakt.

Ich werde jeden Schritt hier ausführlich dokumentieren und am Ende hoffentlich ein Cooles Spiel präsentieren können.