Greenfoot #10: Spiel »Cosmic Invaders«

    Projekt: Cosmic Invaders

    Zwei Spieler/innen kämpfen in diesem Sidescroller gegen Alien-Raumschiffe. Sobald ein Alien es lebend an beiden Spielern vorbeigeschafft hat oder beide Spieler ihre 3 Leben aufgebraucht haben, ist das Spiel vorbei - Game Over. Natürlich tauchen in regelmäßigen Abständen Bosse auf. Das Spiel wird mit jedem besiegten Boss schwieriger.

    Nebenbei lernen wir auch noch:

      • Der super()-Befehl in Vererbungsstrukturen
      • Kontrolliertes Schießen
      • 2-Player-Game
      • Actor-Reihenfolge mit setPaintOrder(…)
      • GreenfootImage-Methoden (setColor, fill …)
      • Moving Background
      • Simulation einer Hintergrundbewegung (Sterne)

    Bevor Sie anfangen, lesen Sie das!

    Das ist ein ziemlicher Klotz - fast eine Stunde lang! Aber dafür programmieren wir ein 2-Player-Spiel mit interessanten und teilweise anspruchsvollen Features (z.B. bewegender Sternen-Hintergrund).

    Das hier brauchen Sie, um mitarbeiten zu können:

    Themenübersicht

    Es werden nur neue Themen aufgeführt. Alle bisher behandelten Themen finden Sie in den anderen Folgen (Übersicht).

    • 7:02 Steuerungstasten als Attribute / Konstruktorparameter
    • 8:59 Gegner spawnen in der World-Klasse
    • 11:11 super() mit Übergabeparametern (Alien-Klassen)
    • 14:56 act()-Methode überschreibt act()-Methode
    • 16:48 World als Attribut einer Actor-Klasse; addedToWorld-Methode zur Initialisierung des World-Attributs
    • 18:53 Casting: World zu Weltraum
    • 19:43 Schießen mit Greenfoot; unterschiedliche Schussgeräusche für die beiden Player
    • 27:07 Hitpoints der Aliens / Treffercheck / abgeschossene Aliens zählen
    • 32:19 Spieler-Leben
    • 34:02 Spieler explodiert bei Kontakt mit Alien
    • 37:35 Bosse mit Timer spawnen
    • 40:28 protected vs. private
    • 42:30 Sterne - Hintergrundbewegung simulieren / GreenfootImage: Konstruktoren, Methoden, Tricks
    • 49:54 Klassen in Vordergrund/Hintergrund mit setPaintOrder(…)
    • 51:45 Level/Schwierigkeitsgrad steigern
    • 53:13 Ideen für Spielerweiterung
    • 54:10 Zusammenfassung: super() in Vererbungsstrukturen

    Übung: Gestern beim Tierarzt

    Öffnen Sie dieses Szenario:

    Achtung: Es geht bei dieser Übung ausschließlich um den super()-Befehl in Vererbungsstrukturen. Wenn Sie das nicht draufhaben, schauen Sie sich nochmal die entsprechenden Abschnitte an (Folge 9/Ninja: 25:01 super()-Aufruf (ohne Parameter) und Folge 10/Cosmic Invaders: 11:11 super() mit Übergabeparametern).

    Ergänzen Sie die super()-Aufrufe, wie im folgenden Video gezeigt. Sie ändern sonst nichts, außer dass Sie überall super()-Aufrufe einfügen (also keine Attribute irgendwo löschen, einfügen, keine Zugriffsmodifikatoren ändern …).

    Lösung

    Sie finden hier ein Lösungsvideo. Das ist weitgehend unkommentiert, ich programmiere das einfach kurz runter. Schauen Sie das ERST DANN an, wenn Sie wirklich nicht weiterkommen. Die Übung ist dazu da, dass Sie die neu erlernten Inhalte anwenden - wenn Sie das jetzt einfach nachprogrammieren, lernen Sie gar nichts.

    Klick hier, um Lösung ein-/auszublenden …


    TEST

    Passwort 1234: klick hier (kommt noch)