Jan 292013
 

Wir werden in dieser und der nächsten Lektion die Grundlagen legen, verschiedene Level für unser Spiel zu erstellen. Dafür müssen wir uns wieder einiger Theorie widmen und erstellen hierzu auch ein neues Projekt, da wir uns einigen Code erst genauer anschauen müssen.

Stunde #2-26: Felder (Arrays)

Zu den mächtigsten Werkzeugen des Programmierers gehören die Felder. Ein Feld kann man es sich als Liste von Dingen vorstellen. Lasst uns annehmen, unsere Lieblingsbeschäftigungen sind:

  • Spielen
  • Essen
  • Schlafen

Diese drei Dinge können wir einfach in eine Liste schreiben und Personen nun nach dieser Liste beurteilen. Damit benötigen wir nicht drei verschiedene Variablen. Das ist vom Grundprinzip her was wir mit Feldern tun können.

1. Um genauer zu sehen, was wir mit Arrays bzw. Feldern tun können, erstellen wir ein neues Projekt, der Name ist egal.

2. Nun erstellen wir im src-Ordner eine neue Klasse mit dem Namen Array.

3. Als Erstes fügen wir folgende Methode hinzu

4. Innerhalb dieser Methode ergänzen wir folgendes:

Das erzeugt ein Array (Liste) von String-Objekten namens stringArray und reserviert Speicher, um drei Dinge unterzubringen.

Nun wollen wir diese Liste mit etwas ausfüllen. Wir können dazu den Plätzen in der Liste Indizes geben. Der erste Platz bekommt den Index 0, der zweite die 1 und so weiter. Um dies zu tun, können wir arrayName[Index] schreiben. In unserem Fall wäre dies:

Nun wollen wir diese Liste auch ausgeben. Es ist verlockend, dafür folgende Möglichkeit zu nutzen: System.out.println(favoriteThings). Was wir dann angezeigt bekommen, ergibt nur wenig Sinn. Statt dessen müssen wir hier eine Schleife nutzen, welche die einzelnen Indizes durchläuft.

Bis hier her haben wir noch nichts Neues besprochen, also versucht, bis hierher alles zu verstehen, bevor ihr weiter macht. Wenn wir unser kleines Programm nun laufen lassen, bekommen wir folgendes Ergebnis in der Console angezeigt. Wenn ihr dies alles verstanden habt, können wir weiter machen.

1

 

Stunde #2-27: Zweidimensionale Felder (2D-Arrays)

Am praktischsten sind diese zweidimensionalen Arrays, wenn wir X- und Y-Positionen nutzen. Bei unserem Spiel werden wir diese Felder nutzen, um Objekte, Spielfiguren und Plattformen zu zeichnen.

2D-Arrays sind im Prinzip genauso einfach wie 1D-Arrays, wir ergänzen diese nur um eine Dimension (z. B. in der Breite).

Um ein 2D-Array zu erzeugen, müssen wir int[][] intArray = new int[30][50]; schreiben. Damit haben wir eine Liste erzeugt, die 30 hoch und 50 breit ist.

Nun erstellen wir eine neue Klasse und nennen diese Tilemap (Kachel-Karte), dazu fügen wir den folgenden Code ein:

Bevor wir diesen Code nun durchlaufen lassen, wollen wir klären, was genau wir hier getan haben.

  1. Wir haben eine Random Klasse importiert, welche wir später benötigen.
  2. In der main()-Methode haben wir eine neues Objekt erstellt namens tp. Dieses wird den Konstrukteur in der main()-Methode aufrufen.
  3. Im Konstrukteur haben wir ein neues zweidimensionales Array erstellt, dieses hat die Höhe 30 und die Breite 50. Danach haben wir ein zufälliges Objekt r erstellt. Zweidimensionale Arrays kann man sich vorstellen als Arrays bestehend aus Arrays bzw. wie Listen, deren einzelne Elemente ebenfalls Listen sind. Unsere erste Liste hat 30 Fächer nach unten und jedes dieser Fächer hat nun in der Breite 50 Fächer.Wenn wir nun tilemap.length aufrufen, haben wir die erste Liste mit einer maximalen Länge von 30. Rows bedeutet Reihen, also die erste Liste. Rufen wir tilemap[1].length auf, arbeiten wir in der zweiten Liste mit einer maximalen Länge von 50. Columns bedeutet Spalten, also sind wir in der zweiten Liste.
  4. Wenn wir nun die printTiles()-Methode aufrufen, welche alle oben erstellten Parameter nutzt, benutzen wir zwei Schleifen, eine für die Reihen und eine für die Spalten. Des Weiteren wird jedes Fach nun mit einem Wert r gefüllt, der zufällig zwischen 0 bis 4 gewählt wird.

Das Resultat:

2

In der nächsten Lektion werden wir jeder Zahl zwischen 0 und 4 ein farbiges Viereck zuweisen, um den Bildschirm auszufüllen. Dies benötigen wir zur Erstellung unserer ersten Level, welche wir dann in Kapitel 3 behandeln, in dem wir auch etwas über Kollisionen von Objekten erfahren werden.

Falls ihr Fragen habt, immer raus damit, ich helfe euch sehr gerne. Hinterlasst bitte einfach einen Kommentar.

Teilt diese Seite mit euren Freunden und besucht uns mal auf Facebook und auf Google+, das würde dieser Seite wirklich weiterhelfen, danke sehr. Auch ein Klick auf die Werbung hilft dabei, diese Seite am Laufen zu halten.

Quelle: Original Anleitung auf englisch von Kilobolt Studios

Lektion 8 – Animationen Lektion 10 – Tilemap