Apr 042013
 

Nachdem ich endlich wieder einen Internetanschluss besitze, freue ich mich schon darauf, endlich mit der Anleitung fortzufahren.

In dieser und der nächsten Lektion werden wir das Grundgerüst legen, um Spiele für Android zu entwickeln. Wenn wir dieses Grundgerüst erstellt haben, können wir einfach Spiele darüber legen und diese werden ohne Probleme auf Android funktionieren. Wie das geht, werden wir später an unserem Roboter Spiel sehen.

Wiederverwendbarkeit & Hinweise

Dieses Grundgerüst wird sehr einfach gehalten sein, ihr könnt immer wieder darauf aufbauen, es verbessern und es bei vielen Projekten erneut verwenden.

Hinweis: Dieses Grundgerüst ist im groben aus dem Buch „Beginning Android 4 Game Development“ von Zechner und Green. Das Grundgerüst ist aber etwas vereinfacht und angepasst an unsere Ansprüche. Falls ihr aber mehr dazu wissen wollt, ist das Buch eine gute Wahl.

Einige Zeilen Code in diesem Grundgerüst werden euch ziemlich abstrakt vorkommen, bitte tut mir aber einen Gefallen und versucht nicht, alles gleich zu verstehen. Je öfter ihr mit diesem Code arbeitet, um so schneller versteht ihr es. Es ist auch nicht möglich, jede einzelne Zeile genau zu definieren.

In Kapitel 2 und 3 haben wir ein Spiel erstellt, dazu haben wir einige Applets genutzt die einfach funktionieren in Java. Leider gibt es diese Möglichkeit nicht für Android, es gibt kein Programm, auf das wir einfach aufbauen können. Daher müssen wir uns selbst eine Basis schaffen für die Grafik, Dateimanagement, Eingabe, …

Die Spielarchitektur

Unser Spiel wird wie folgt aufgebaut sein:

1. Das Spiel-Interface: hier werden wir Komponenten unseres Spiels erstellen wie Audio und Graphics. Wir werden Variablen und Werte erstellen, welche mit einander agieren. Diese werden wir aber nicht genau definieren. Wir erstellen quasi ein Skelett unseres Spiels.
2. Die Implementierung der Schnittstelle: hier werden wir die oben erstellen Variablen und Werte nehmen und diese definieren, AndroidAudio und AndroidGraphics. Wir werden also Muskeln auf unser Skelett bauen.
3. Der Spiel Quellcode: hier werden wir ähnlich wie in Kapitel 2 und 3 ein Spiel programmieren. Dieser Code wird auf die Schnittstellen zugreifen und somit mit Android interagieren. Wir werden eine Haut um unsere Muskeln legen.

Erstellen des Grundgerüsts eines Android Spiels

Als erstes erstellen wir eine neue Android App.

k4l5b1

Nun müssen wir alle erforderlichen Felder ausfüllen.

k4l5b2

Als nächstes machen wir die Hacken bei „Create custom launcher icon“ und „Create activity“ weg, da wir beides für unser Grundgerüst nicht benötigen.

k4l5b3

Nun können wir mit der Programmierung beginnen.

Erstellen vom Interface (Schnittstelle)

Unser Spiel benötigt 9 verschiedene Schnittstellen:

  1. Ein Game Interface, was alles zusammenhält.
  2. Ein Audio Interface, dieses benötigt das
  3. Musik Interface für große Audio Dateien und das
  4. Sound Interface für kleine Audio Dateien.
  5. Ein Graphics Interface, was ein
  6. Image Interface benötigt.
  7. Ein Screen Interface um das Spiel darzustellen.
  8. Ein FileIO Interface um Daten zu lesen und zu schreiben.
  9. Ein Input Interface um die Eingaben des Benutzers zu verwenden.

Des Weiteren werden wir noch eine Pool Klasse erstellen, um all unsere Objekte zu bündeln.

Wir werden nun jedes einzelne Interface erstellen. Der enthaltene Code ist in den meisten Fällen selbsterklärend. Bei manchen kann man sich den Sinn durch etwas Nachdenken selbst erschließen. Einiges benötigt aber etwas Erklärung, welche ich euch gerne liefere, die übrigen müssten wir aber alle in der Lage sein zu verstehen.

Bevor wir Anfangen:

Jeder Code ist für das com.basteldroid.framework entwickelt. Wenn ihr euren eigenen Code erstellen wollt oder diesen später in euren Spielen nutzen möchtet, müsst ihr das in jeder Klasse verändern.

Des Weiteren stört euch bitte nicht an den ganzen Fehlern, die jetzt entstehen. Wir müssen erst alles erstellt haben, bis wir damit beginnen können, Fehler zu beheben.

Das Game Interface

Als Erstes gehen wir auf den src Ordner und erstellen ein neues Package (Rechtsklick auf src > New > Package).

k4l5b4

Dies nennen wir com.basteldroid.framework

k4l5b5

Hier werden wir alle unsere 10 Klassen erstellen. Mit Rechtsklick (auf das Paket) > New > Interface erstellen wir ein neues Java Interface und nennen es Game.

k4l5b6 k4l5b7

Nun fügen wir unseren Code ein:

Wenn wir das nun getan haben, bekommen wir eine Menge Fehler. Der einfachste Weg ist es, mit dem Mauszeiger auf die Fehler zu gehen und ein Fix auszuwählen. Ihr dürft aber keinen Code importieren, dass würde zu massiven Fehlern führen.

Wir werden nun für das Audio, Input, FileIO, Graphics und Screen Interface folgendes tun und danach die einzelnen Interface erstellen und mit Code füllen.

k4l5b8

Die Screen Klasse

Dies ist eine abstrakte Klasse, mit der wir keine Objekte erstellen. Wir können sie aber in anderen Klassen als Superklasse verwenden. Sie beinhaltet abstrakte Mehtoden, welche Parameter besitzen aber nicht implementiert werden. Einige dieser Methoden sind uns bekannt aus den Kapiteln 2 und 3. Hier haben wir noch deltaTime hinzugefügt. Dieser Parameter misst die Zeit, die vergangen ist, seit die Methode das letzte mal aufgerufen wurde. Dies können wir dazu verwenden, eine von der Framerate unabhängige Bewegung zu implementieren, aber dazu später mehr.

Das Graphics Interface

Dieses Interface beinhaltet viele Methoden, die uns beim Zeichnen auf dem Bildschirm unterstützen. clearScreen füllt den kompletten Bildschirm mit einer Farbe. ARGB steht für Alpha, Red, Green und Blue. Dies verwenden wir für die RGB Farben und wie durchsichtig diese sein sollen.

Nichts importieren. Nur den Code von oben verwenden.

Das FileIO Interface

Dieses Interface erklärt sich fast von alleine. Wir verwenden hier IOException, damit wir kein Try and Catch Statement benötigen.
SharedPreferences ist ein Android Interface, welches wir benötigen, um auf Daten zuzugreifen, mehr dazu später.

Das Input Interface

Hier werden die Berührungen des Bildschirms in Bewegungen umgewandelt.

Das Audio Interface

Hier werden Music und Sound dazu verwendet, um Audio Objekte zu erstellen. Bitte erstellt nun das Music und Sound Interface mit dem Fix.

Das Music Interface

Hier erklärt sich das Meiste von alleine. Wir haben Methoden für das Abspielen, Stoppen und Anhalten sowie für das Ändern der Lautstärke und das Wiederholen eines Titels. Des Weiteren wird der momentane Status immer wieder abgefragt und mit der dispose Methode wird das Lied aus dem Speicher entfernt.

Das Sound Interface

Das Image Interface

Das Image Interface müssen wir nun noch in unserem Paket erstellen.

Hier wird auf das ImageFormat des Graphics Interface zurück gegriffen. Das finden sicherlich einige etwas komisch, das wird sich aber später aufklären.

Die Pool Klasse

Die Pool Klasse müssen wir nun noch in unserem Paket erstellen.

Da diese Klasse sehr komplex ist, werden wir darauf zurück kommen, wenn wir sie verwenden.
Damit haben wir schon ein schönes Grundgerüst für unser Android Spiel erstellt. In der nächsten Lektion werden wir es noch weiter verfeinern, so dass wir unser Android Spiel darauf entwickeln können.

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 4 – Teile einer Android App Lektion 6 – Grundgerüst eines Android Spiels Teil 2