Projektteam
Fabian Raffeiner
Projektidee
Die Idee meines Projekts war es, ein kleines 2D-Kampfspiel in Java zu entwickeln, das vom Spielprinzip her an Nidhogg 2 erinnert, aber einfacher aufgebaut und komplett selbst programmiert ist. Zwei Spieler treten dabei an derselben Tastatur gegeneinander an. Sie können laufen, springen, angreifen und ihre Waffe werfen. Wenn ein Spieler den anderen besiegt, darf er in Richtung seines Ziels weiter vorrücken. Das Spiel besteht aus mehreren Räumen, durch die man sich Schritt für Schritt kämpfen muss. Erst wenn ein Spieler das Ende erreicht, gewinnt er. Das Projekt wurde im Informatikunterricht umgesetzt und sollte vor allem zeigen, wie man Vererbung, Klassen, Objekte, Kollisionen und eine grafische Oberfläche sinnvoll miteinander verbindet.
Funktionsweise
- Das Spiel startet mit einem Startscreen.
- Beide Spieler geben dort ihren Namen ein.
- Danach wird die mittlere Map geladen.
- Spieler 1 steuert mit W, A, D, C und V.
- Spieler 2 steuert mit Pfeiltasten, O und P.
- Beide Spieler können laufen, springen und angreifen.
- Die Waffe kann auch geworfen werden.
- Bei einem Treffer stirbt der Gegner kurzzeitig.
- Der erfolgreiche Spieler darf weiter zur nächsten Tür.
- Wer das Ende der Maps erreicht, gewinnt.
Daten und Fakten
Programmiersprache: Java
Grafische Oberfläche: Java Swing
Hauptklasse: GUI
Weitere Klassen: UnbeweglichesObjekt, BeweglichesGutesObjekt, SteuerbaresObjekt
Innere Klassen: Boden, Stein, SchwebendeMauer, Tuer, PunkteHalter
Thema im Unterricht: Vererbung und objektorientierte Programmierung
Spielmodus: zwei Spieler an einer Tastatur
Spielzustände: Startscreen, Spiel, Game Over
Maps: 5 verschiedene Räume
Map-Größe: 24 Spalten und 18 Zeilen
Map-System: dreidimensionales Integer-Array
Objekte werden über Zahlen in der Map erzeugt
Steuerung über KeyListener
Spielschleife über Timer
Kollisionen über Rechtecke und intersects()
Grafiken werden aus dem /assets-Ordner geladen
Waffen können getragen, geworfen und zurückgegeben werden
Das Spiel enthält Respawn-, Treffer- und Wurf-Cooldowns