Java

Programmieren lernen tut man am besten, indem man Spaß hat. Deshalb haben wir im Folgenden ein kleines Spiel vorbereitet, anhand dessen ihr die Grundlagen von Java erlernen könnt. Solltet ihr danach so viel Spaß daran gehabt haben und noch keine Idee haben, was ihr für ein Projekt erstellen wollt, laden wir euch herzlich dazu ein, das Game weiter zu entwickeln!

Nun die Details zum Game: Ihr seid eine Crew von Menschen auf einem Raumschiff in einer großen Galaxie. Ihr könnt euch in der Galaxie bewegen, teilweise Planeten ansteuern und müsst euch gleichzeitig vor gefährlichen, unerforschten Zivilisationen in Acht nehmen, bei denen ihr euch nicht sicher seid, ob sie euch freundlich gesonnen sind.

Ihr werdet in den folgenden Aufgaben eure Welt, Raumschiffe und Planeten erstellen, euch dabei mit den wichtigsten Funktionalitäten der (objektorientierten-)Programmierung vertraut machen und eventuell ein spaßiges, ausgereiftes Spiel in euren Händen halten (vor allem, wenn ihr euch entscheidet, dass ihr das Spiel als euer Projekt weiterführen wollt).

Aufgaben

  1. Wir starten mit einer Graphischen Oberfläche in einem eigenen Fenster.

    Dafür verwenden wir JPanel und JFrame, für Keyinputs KeyListener und für das hinzufügen von Bilddateien Graphics, Toolkit und Image.

    Deine Main Klasse extended JPanel und muss eine Variable vom Typ JFrame haben. Lies dir dazu das Tutorial oben durch. Erstelle die Klasse und füge benötigte Variablen hinzu. Das Ziel ist, ein Fenster ,das sich beim Starten der main-Funktion öffnet, in das wir unser Spiel reinbauen können.

    Optional Mach dir schon mal Gedanken um Key Inputs und Fenstergröße. JFrame hat viele weitere Funktionen, die du dir anschauen kannst, um deinem Fenster mehr Funktionen zu geben.
  2. Jetzt wollen wir anfangen unser Fenster zu füllen. Wir werden eine Weltraumkarte generieren und den für uns sichtbaren Teil im Fenster darstellen.

    Dazu brauchen wir zuerst eine weitere Klasse, Game ,in der wir alle Spiel-spezifischen Daten sammeln, sowie die Karte speichern. Ein Objekt dieser Klasse können wir in unserer Main Klasse nutzen, um ein neues Spiel zu erstellen, um einen Verbindungspunkt zwischen Fenster und Inhalt zu haben.

    Unter res/ findet ihr Bilddateien, die ihr als Hintergrund nutzen könnt. Überlegt euch, wie groß eure Karte sein soll und wie viel der Karte angezeigt werden soll. Das Spiel lebt vom Entdecken von unbekannten Welten. Generiert eine Karte zum Spielbeginn, nutzt dafür die Bilddateien und lasst sie vom Fenster painten. Eine gute Praxis ist, wenn deine Generierung auch für andere Kartengrößen funktioniert und nicht immer komplett gleich ist, sonst wird das Spiel vielleicht etwas langweilig. Dafür kannst du z.B. Random nutzen.

    Optional Einige Bilder haben einen transparenten Hintergrund. Statt ein Bild für ein Tile zu nehmen kannst du mehrere übereinander legen und so eine komplett eigenes Tile kreieren.
  3. Nun geht es ans Erstellen des Raumschiffs.

    Mach dich zunächst mit den Konzepten von Klassen und Objekten vertraut. Nutze hierfür gerne folgendes kurzes Tutorial: Klassen in Java

    Überlege dir, welche Funktionen du alle benötigst. Dein Raumschiff sollte sich mindestens bewegen können. Dazu zählt auch, dass es sich nur innerhalb deiner Welt bewegen darf. Hierfür kannst du den KeyListener von Aufgabe 1 nutzen.

    Erstelle schlussendlich dein Raumschiff und probiere aus, ob du dich auch bewegen kannst.

  4. Es wäre doch langweilig, wenn wir alleine im riesigen Weltraum wären, oder? Deshalb möchten wir nun feindliche Schiffe von Aliens unserem Weltraum hinzufügen.

    Lies dich zunächst in das Konzept der Vererbung ein. Auf der folgenden Seite findest du ein kurzes Tutorial: Vererbung in Java

    Denke darüber nach, welche Überschneidungen es bei den verschiedenen Raumschiffen gibt und ob sie eventuell Unterschiede haben. Erstelle dann Tochterklassen für dein eigenes Raumschiff und die Raumschiffe der Aliens. Lass beide Tochterklassen die gemeinsamen Funktionen und Attribute erben und erstelle alle Unterschiede in den Klassen für sich.

    Probiere auch hier aus, ob du ein Alienschiff spawnen kannst und wie es sich im Gegenzug zu deinem eigenen Raumschiff verhält.

  5. Woher kommen die Aliens eigentlich alle? Lass uns ein paar Planeten zu dem Spiel hinzufügen. Es gibt so viele Möglichkeiten was wir damit tun können.

    Planeten sind Hindernisse, die wir umfliegen müssen. Gegen Planeten fliegen ist nähmlich keine Option. Also auf Nummer sicher gehen, dass unser Raumschiff nicht mit Planeten kollidieren kann.

    Planeten könnten auch Resourcen-Quellen sein. Villeicht gibt jeder Planet, den wir finden, uns irgendwelche Boni oder Fundsachen.

    Optional Planeten müssen auch nicht immer gleich aussehen. Unterschiedliche Größen bringen Variety, aber auch Challenges mit sich. Objekte waren bisher immer alle gleich groß.
    Optional Nach einem langen Tag im Weltall ist ein Landgang sicherlich eine schöne Idee. Ein Minispiel, in dem wir den Planeten besuchen, klingt witzig.

Inhalt