In dem mehrteiligen Java Spiel Programmieren Tutorial wird ein 2D Spiel schrittweise entwickelt. Das Spiel wird eine Art Panzer-Shooter sein und sich mit der Tastatur steuern lassen. Das Java Spiel ist für Einzelspieler konzipiert, lässt sich jedoch leicht für zwei Spieler erweitern.
Das Java Spiel wird Lektion für Lektion entstehen und dabei schrittweise neue Funktionen erhalten. Daher sollten die Lektionen unbedingt der Reihe nach absolviert und kein Arbeitsschritt übersprungen werden.
In diesem Tutorial lernt ihr:
- Wieso ein Spiel in Java programmieren
- Die Lernziele des Java Spiel Programmieren Tutorials
- Vorkenntnisse und Voraussetzungen
- Die Inhalt des Java Spiel Programmieren Tutorials
Ihr solltet auch lesen:
Auf dieser Übersichtsseite des Java Spiel Programmieren Tutorials stellen wir die einzelnen Lektionen kurz vor. Wir empfehlen die Beschreibungen der einzelnen Lektionen zu lesen und anschließend mit der Lektion zu beginnen. Ihr könnt aber auch per Schnellzugriff direkt zur jeweiligen Lektion springen.
Die Lektionen des Java Spiele Programmieren Tutorials
1. Wieso ein Spiel in Java programmieren?
Java ist eine sehr einsteigerfreundliche und dennoch äußerst mächtige Programmiersprache. Sie ist daher ideal für Programmier Tutorials geeignet.
Durch das Programmieren in Java können wir zudem sicherstellen, dass unseren Lesern der Einstieg in die Spieleprogrammierung besonders leicht fallen wird. Dies ist ein großes Ziel unseres Spiel Programmieren Tutorials.
Außerdem kann das, in diesem Java Tutorial, erlangte Wissen leicht weiterverwendet werden. Die hier vorgestellten Konzepte lassen sich auch in anderen Programmiersprachen einsetzen.
Hat man erst einmal verstanden wie und warum man etwas tut, ist es nicht mehr so schwer dies auf verschiedene Arten zu tun. Es ist sogar äußerst lehrreich, etwas auf verschiedene Arten zu realisieren.
Java wird zudem als Programmiersprache für die Android App Entwicklung eingesetzt. Somit können Absolventen unseres Java Spiel Programmieren Tutorials ihr Wissen auch für die Entwicklung eigener Android Spiele nutzen. Eine sehr verlockende Idee.
Es gibt also gute Gründe ein Spiel in Java zu programmieren.
2. Lernziele des Java Spiel Programmieren Tutorials
In diesem Java Spiel Programmieren Tutorial lernt ihr ein eigenes 2D Spiel in Java zu programmieren.
Die einzelnen Lektionen sind dabei so aufgebaut, dass ihr Einblicke in die Spieleprogrammierung erhaltet und die grundlegenden Konzepte der Programmiersprache Java in der Praxis kennenlernt.
Das zu entwickelnde Spiel wird eine Art Panzer-Shooter und von mittlerer Komplexität sein. Für die Entwicklung unseres Java Spiels werden wir eine integrierten Entwicklungsumgebung nutzen. Unsere Wahl fiel dabei auf die Entwicklungsumgebung NetBeans von Oracle.
Die Lerninhalte sind so konzipiert, dass ihr sie auch in anderen Anwendungsgebieten wiederverwenden könnt, bspw. für die Erstellung einer Java Anwendung mit grafischer Benutzeroberfläche.
Am Ende dieses Java Spiel Programmieren Tutorial seid ihr in der Lage ein eigenes Actionspiel in Java zu programmieren. Ihr kennt die Grundlagen der Programmierung von grafischen Benutzeroberflächen in Java und habt zudem erste Erfahrung im Umgang mit der Entwicklungsumgebung NetBeans IDE gesammelt.
Momentan entwickeln wir neue Lerninhalte. Es ist bereits Lektion 1 unseres Java Spiele Programmieren Lernen Tutorials von uns veröffentlicht worden. In den nächsten Wochen werden wir schrittweise neue Lektionen veröffentlichen.
3. Welche Vorkenntnisse werden benötigt und welche Voraussetzungen müssen erfüllt sein?
Bei der Programmierung unseres Java Spiels werden wir auf viele fortgeschrittene Konzepte der Programmiersprache zurückgreifen, wie bspw. anonyme Klassen oder Polymorphie, daher sind erste Erfahrungen mit Java oder einer anderen objektorientierten Programmiersprache sehr hilfreich.
Da wir dieses Java Spiel Programmieren Tutorial aber auch für Programmiereinsteiger konzipiert haben, werden wir auch komplexe Sachverhalte stets ausführlich kommentieren und erklären was der jeweiligen Quellcode im Detail bewirkt.
Somit sollten auch Einsteiger in der Lage sein, die Lektionen des Tutorials zu bewältigen. Und mit der Zeit wird auch das Programmierverständnis zunehmen, so dass die Lerninhalte leichter nachvollzogen werden können.
Das Java Spiel werden wir mit Hilfe der Entwicklungsumgebung NetBeans IDE entwickeln. Daher ist es notwendig, dass ihr NetBeans auf eurem PC installiert habt. Falls ihr Hilfe bei der Installation von NetBeans benötigt, könnt ihr die einzelnen Installationsschritt mit uns gemeinsam in Teil 1: Das Java Projekt erstellen und die NetBeans IDE installieren ausführen.
Neben der Entwicklungsumgebung muss auch die Java Laufzeitumgebung JRE (Java Runtime Environment) und das JDK (Java Development Kit) auf dem Rechner installiert sein. Wie ihr die JRE und das JDK installiert, könnt ihr in diesem Beitrag erfahren: Java 8 installieren – Installation des JDK Version 8.
4. Inhalt des Java Spiel Programmieren Tutorials
Das Java Spiel Programmieren Tutorial ist in mehrere Lektionen unterteilt, in denen jeweils ein ganz bestimmter Bereich der Spieleentwicklung behandelt wird.
Die Reihenfolge der Lektionen muss zwingend eingehalten werden, da das Java Spiel von Lektion zu Lektion weiterentwickelt wird und nachfolgende Lektionen auf Vorherigen aufbauen. Weiterhin bildet die erste Lektion die Grundlage des Tutorials und sollte unbedingt in Ruhe ausgeführt werden.
Die späteren Lektionen fügen dem Java Spiel dann immer eine neue Funktion hinzu und führen dadurch tiefer in die Materie der Spieleprogrammierung in Java ein.
In dem unteren Video ist eine typische Spielsituation des von uns programmierten Java Spiels zu sehen:
In dem Video haben wir ein kleine Partie PanzerHQ gespielt. Es ist uns gelungen drei gegnerische Panzer zu eliminieren, bevor der Spielerpanzer den finalen Treffer einstecken musste und zerstört wurde.
In dem Video sind die meisten Funktionen unseres selbst programmierten Java Spiels vorgestellt worden.
Lektion 1: Das Java Projekt erstellen und die NetBeans IDE installieren
In der ersten Lektion unseres Java Spiel Programmieren Tutorials werden wir das Java Projekt in der Java Entwicklungsumgebung NetBeans von Oracle anlegen.
Doch bevor wir mit dem Erstellen des Java Projekts beginnen, werden wir euch zeigen wie ihr die NetBeans IDE richtig installiert und prüfen könnt, ob das Java Development Kit (JDK), welches wir für die Entwicklung unseres Java Spiels benötigen, korrekt auf eurem Rechner installiert ist.
Wir werden in späteren Teilen dieses Java Tutorials das in dieser Lektion erstellte Java Projekt als Grundlage für unser selbst programmiertes Java Spiel verwenden. Dabei wird das Java Spiel in jeder Lektion neue, zusätzliche Funktionen erhalten und sukzessive erweitert werden.
Unser programmiertes Java Spiel wird ein zweidimensionaler Panzer-Shooter sein. Der Panzer wird aus der Vogelperspektive mit der Tastatur gesteuert und gegen computergesteuerte Panzer kämpfen. Doch dazu in späteren Lektionen mehr.
In der ersten Lektion unseres Java Spiel Programmieren Tutorials begnügen wir uns erst einmal damit das Java Projekt korrekt anzulegen, damit der Einstieg in die Spieleprogrammierung möglichst einfach gelingt.
Lektion 2: Ein Spielfenster für unser Java Spiel erstellen
In der zweiten Lektion unseres Java Spiel Programmieren Tutorials werden wir das Spielfenster unseres Java Spiels programmieren. In dem Spielfenster werden wir später unsere Panzer fahren lassen. Das Spielfenster wird über eine obere Menüleiste mit mehreren Menüeinträgen verfügen.
Dazu werden wir eine JMenuBar aus der Swing-Bibliothek von Java verwenden und das Menü mit Einträgen füllen. Damit die Menüeinträge auf Benutzereingaben reagieren, werden wir ihnen einen ActionListener hinzufügen.
Den Listener implementieren wir in Form einer anonymen inneren Klasse. Was das genau ist werden wir in dieser Lektion des Java Spiele Programmieren Tutorials ausführlich erklären.
Weiterhin möchten wir, dass unser Java Spiel auch auf Fensterereignisse reagiert. Dazu registrieren wir einen WindowListener für unser Spielfenster. Mit diesem Listener können wir unser Java Programm reagieren lassen, wenn das Spielfenster bspw. durch einen Klick auf das Fenster schließen-Symbol geschlossen wird.
Am Ende dieser Lektion werden wir ein funktionstüchtiges Spielfenster, das ein Menü besitzt und auf Benutzereingaben reagiert, programmiert und somit die Grundlage für die grafische Darstellung unseres Java Spiels geschaffen haben.
Lektion 3: Die Spielfläche für unser Java Spiel programmieren
In der dritten Lektion unseres Java Spiel Programmieren Tutorials werden wir die Spielfläche unseres Java Spiels programmieren. Die Spielfläche werden wir dann in dem Spielfenster unseres Java Spiels anzeigen lassen.
Die Spielfläche wird durch die Klasse GamePanel repräsentiert und besitzt zwei wichtige Funktionen. Sie ist zum einen das Zeichenbrett, auf welches wir unsere Spielobjekte zeichnen und zum anderen die Spiellogik unseres Java Spiels.
Das allgemeine Spielgeschehen auf der Spielfläche soll über die obere Menüleiste gesteuert werden können, um dies zu realisieren, werden wir weitere Menüeinträge der Menüleiste hinzufügen.
Auch der Untergrund der Spielfläche soll änderbar werden. Um dies zu realisieren, werden wir ein weiteres Paket (Package) für unser Java Projekt anlegen und in diesem die Bilder ablegen. Anschließend werden wir das Preferences-Menü um eine Untermenü (Submenu) erweitern, mit dessen Hilfe es möglich ist den Spielfelduntergrund zu wechseln.
Am Ende der dritten Lektion werden wir ein funktionstüchtiges Spielfenster mit einem Menü und einer Spielfläche programmiert haben. Über einen internen Taktgeber (Timer) können wir den Spielzustand wechseln und haben somit die Grundlage geschaffen, Spielobjekte über die Spielfläche zu bewegen.
Lektion 4: Die Spielobjekte für unser Java Spiel programmieren
In der vierten Lektion unseres Java Spiel Programmieren Tutorials werden wir die ersten Spielobjekte unseres Java Spiels programmieren. Wir werden zwei Spielobjekte auf der Spielfläche anzeigen und sie über diese bewegen lassen.
Um die Spielobjekte auf der Spielfläche platzieren zu können, werden wir zuerst die Hilfsklasse Coordinate mit NetBeans anlegen. Sie repräsentiert eine zweidimensionale Koordinate und wird zur Positionierung aller Spielobjekte unseres Java Spiels verwendet werden.
Anschließend werden wir die abstrakte Klasse GameObject erstellen. Sie ist die Mutter aller Spielobjekte in unserem Spiel. Da sie aber abstrakt ist, lassen sich keine Instanzen von ihr anlegen. Die GameObject-Klasse wird alle grundlegenden Eigenschaften der Spielobjekte definieren.
Nachdem wir die GameObject-Klasse angelegt haben, werden wir die erste konkrete Spielobjektklasse erstellen, die Missile-Klasse. Diese Klasse leiten wir von der GameObject-Klasse ab und implementieren dabei die abstrakte Methode paintMe() der Mutterklasse.
Schließlich werden wir unsere ersten beiden Spielobjekte auf der Spielfläche erstellen. Dazu überarbeiten wir den Quellcode der GamePanel-Klasse und legen in ihr zwei Membervariablen vom Missile-Datentyp an. Die Missile-Objekte lassen wir dann über die Spielfläche fliegen und miteinander kollidieren, dabei überprüfen wir auch gleichzeitig die Kollisionsabfrage unseres Java Spiels.
Am Ende der vierten Lektion werden wir die ersten Spielobjekte über die Spielfläche unseres Java Spiels bewegen und kollidieren lassen. Noch sind es nur die Geschosse unseres Panzerspiels. Dennoch werden wir in dieser Lektion mit der GameObject-Klasse den Grundstein für alle weiteren Spielobjekte unseres Java Spiels legen.
Lektion 5: Panzer und Steuerung für unser Java Spiel programmieren
In der fünften Lektion unseres Java Spiel Programmieren Tutorials werden wir die Klasse Tank erstellen.
Die Tank-Klasse repräsentiert den Spielerpanzer und implementiert alle grundlegenden Eigenschaften und Fähigkeiten eines Panzers. Die Tank-Klasse leiten wir von der abstrakten Klasse GameObject ab.
Danach werden wir die Tank-Klasse testen und den Spielerpanzer erstmals auf der Spielfläche unseres Java Spiels fahren lassen. Da es aber deutlich mehr Spaß macht den Panzer selbst zu steuern, implementieren wir danach die Steuerung des Panzers.
Der Panzer wird mit der Tastatur gesteuert. Wir überwachen daher die Tastatureingaben mit einem KeyListener, den wir für das GamePanel-Objekt registrieren werden.
Mit dem KeyListener prüfen wir, welche Taste gerade gedrückt wird und lassen unser Java Spiel entsprechend darauf reagieren. Der Panzer kann vor- und rückwärts fahren und dabei sich selbst und auch den Turm drehen. Außerdem kann der Panzer Geschosse abfeuern. Die Geschosse sind Instanzen der Missile-Klasse, welche unser anderes bereits implementiertes Spielobjekt repräsentiert.
Am Ende dieser Lektion werden wir in der Lage sein, den Spielerpanzer selbst über die Spielfläche zu steuern.
In dem unteren Video ist das Spielfenster unseres selbst programmierten Java Spiels mit dem von uns gesteuerten Spielerpanzer zu sehen:
Zu Beginn des Videos erklären wir die Steuerung des Spielerpanzers. Anschließend fahren wir mit dem Panzer ein paar Kreise und feuern dabei mehrere Geschosse ab. Dabei ist der Ladebalken zu sehen, der den Nachladevorgang darstellt.
Am Ende des Videos lassen wir den Spielerpanzer von einem Geschoss treffen und testen dadurch die neue verbesserte Kollisionsabfrage. Unmittelbar nach dem Treffer endet unser Java Spiel und es wird GAME OVER! in dem Spielfenster ausgegeben.
Lektion 6: Die gegnerischen Panzer des Java Spiels programmieren
In der sechsten Lektion unseres Java Spiel Programmieren Tutorials werden wir die Klasse EnemyTank erstellen. Die EnemyTank-Klasse wird die gegnerischen Panzer unseres Java Spiels repräsentieren.
Die neue Klasse wird die Klasse Tank erweitern und dadurch die grundlegenden Eigenschaften von Spielobjekten und Panzern erben. Zusätzlich werden wir neue spezielle Eigenschaften und Fähigkeiten, wie das automatische Zielen und Schießen auf den Spielerpanzer, in ihr definieren.
Nachdem wir die neue Klasse erstellt haben, werden wir einige Änderungen an der GamePanel-Klasse vornehmen. Dies ist notwendig, um die Klasse EnemyTank testen und einen gegnerischen Panzer über die Spielfläche fahren lassen zu können.
Das Testen der neuen Klasse werden wir dann im letzten Abschnitt dieser Lektion durchführen. Dazu werden wir unser Java Spiel in NetBeans ausführen und das Spielgeschehen in einem kleinen Video festhalten.
Lektion 7: Die Spiellogik des Java Spiels programmieren
In der siebten Lektion unseres Java Spiel Programmieren Tutorials werden wir die Spiellogik unseres Panzer-Spiels implementieren.
Dazu werden wir den Quellcode der Klasse GamePanel an mehreren Stellen überarbeiten und erweitern. Die GamePanel-Klasse nimmt in unserem Java Spiel eine sehr wichtige Rolle ein. Sie ist für die grafische Darstellung der Spielfläche mit den Spielobjekten verantwortlich und stellt außerdem die Spiellogik bereit.
Da sich die vorzunehmenden Änderungen über den gesamten Quellcode der GamePanel-Klasse verteilen, werden wir die sie schrittweise durchführen. Dieses Vorgehen ermöglicht es uns zudem, die jeweils vorgenommene Änderung direkt und ausführlich zu besprechen.
Nachdem wir die Spiellogik implementiert haben, werden wir unser Java Spiel in der NetBeans IDE ausführen, um es ausgiebig zu testen.
Mit Abschluss dieser siebten Lektion wird unser Panzer-Spiel einen fortgeschrittenen Entwicklungsstand erreicht haben, in welchem sich sinnvoll auf Panzerjagd begeben werden kann. Wir kommen damit in dieser Lektion unserem Ziel, ein eigenes Spiel in Java zu programmieren, einen großen Schritt näher.
Lektion 8: Den Einstellungsdialog des Java Spiels erstellen
In der achten Lektion unseres Java Spiel Programmieren Tutorials werden wir den Einstellungsdialog unseres Panzer-Spiels implementieren.
Über den Dialog soll die Farbe des Panzerturms und der Kanone des Spielerpanzers ausgewählt werden können. Dabei möchten wir den Spielern eine Vorschau des Spielerpanzers im Dialog präsentieren.
Um diesen Einstellungsdialog zu realisieren, werden wir zunächst einige Vorbereitungen am Quellcode unseres Java Spiels treffen. Dazu werden wir eine kleine Erweiterung an der GamePanel-Klasse vornehmen.
Anschließend werden wir eine zweite Zeichenfläche (JPanel) erstellen, auf der die Vorschau des Spielerpanzers dargestellt wird. Danach legen wir den Einstellungsdialog an, über den die Farben des Spielerpanzers ausgewählt werden.
Dieser Dialog wird die neu erstellte Zeichenfläche als Tank Preview enthalten, wodurch die Spieler sofort prüfen können, ob die gewählte Farbe ihren Vorstellungen entspricht.
Schließlich werden wir unser Java Spiel in NetBeans ausführen und den Einstellungsdialog ausgiebig testen.
Comments 5
Danke 🙂
Hi!
Das Tutorial war super!
Ich hätte da aber eine Frage. Warum stehen bei mir unten links nicht die eleminierten Tanks?
MFG
Danke das hat mir sehr geholfen
Cool das es ein Programm gibt, bei dem man Spiele und so programieren kann!
Pingback: Java Spiel Programmieren Tutorial - Das Java Projekt anlegen