Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:projects:spacedebris:start

Projekt: Space Debris-Game

Wir erstellen einen einfachen Space-Shooter, bei dem ein Raumschiff von links nach rechts fliegt und von rechts her Trümmer kommen, die das Raumschiff abschießen muss. Nach drei Kollisionen des Raumschiffs mit Trümmern ist das Spiel zu Ende.

Hier der fertige Zustand:

Vorplanung: Klassendiagramm

Programmerstellung, 1. Teil:

Aufgabe 1:

Bearbeite diese Aufgabe im Workspace "Space Debris Game", den Du in Deiner Entwicklungsumgebung findest.

  • a) Ergänze die Methode act der Klasse Spaceship so, dass das Raumschiff auch nach rechts und links fliegen kann.
    Herausforderung (freiwillig): Werden bspw. die Tasten Pfeil-nach-rechts und Pfeil-nach-oben gleichzeitig gedrückt, so soll sich das Raumschiff nicht schneller bewegen als beim Herunterdrücken nur einer einzigen Pfeiltaste.

  • b) Ergänze die Klasse Debris so, dass sich jedes Müll-Teil mit einer individuellen Winkelgeschwindigkeit dreht.
    Tipp: Du brauchst ein Attribut w für die Winkelgeschwindigkeit, das im Konstruktor initialisiert wird. In der act-Methode wird das Müll-Teil dann einfach nur um w gedreht.

  • c) Freiwillig: Ergänze die Klasse Debris so, dass die Müll-Teile verschieden schnell sind.
    Tipp: Du brauchst Attribute vx und vy, deren Werte im Konstruktur zufällig gesetzt werden (z.B. vx zwischen -15 und -5 und vy zwischen -5 und 5). In der Methode act wird dann um (vx, vy) verschoben.

Hier geht's zur Lösung!

Weiterentwicklung

  • Kollision bullet - debris mit Explosion
  • Kollision spaceship-debris mit Lebensanzeige
  • Zustände startscreen, gameRunning und gameOver mit Methode setZustand
  • Schüsse zeitlich beschränken



Hier der Programmzustand nach der Weiterentwicklung

Aufgabe 2

Ihr findet einen neuen Workspace "Space Debris Game 2" in Eurer Entwicklungsumgebung, der den aktuellen Stand der Entwicklung wiederspiegelt. Bitte bearbeitet dort die folgenden Aufgaben.

  1. Rechts oben soll eine Punkteanzeige zu sehen sein, die anfangs 0 anzeigt. Nach jedem Treffer wird sie erhöht, am besten um so mehr, je kleiner das getroffene Rechteck ist. Wird nach "Game Over" ein neues Spiel begonnen, so wird die Punkteanzeige wieder auf 0 zurückgesetzt.
  2. Freiwillig: Mit fortschreitender Spieldauer sollen die Rechtecke und das Raumschiff schneller werden. Zudem sollen mehr Rechtecke je Zeiteinheit von rechts hereinfliegen.

Hier geht's zur Lösung!

api/projects/spacedebris/start.txt · Zuletzt geändert: 2021/05/02 16:05 von Martin Pabst