info10:aufgaben:blaster

Weltraum Shooter Marke Eigenbau (pgz Blaster)

Orginal (Python)

Aufgabe 1

  1. Das Schiff soll sich durch die Kursortasten nach links und rechts bewegen können.
  2. Druck auf die Spacetaste feuert eine Rakete ab.
  3. Damit hier beim Drücken der Spacetaste kein Dauerfeuer entsteht, soll ein timer eingeführt werden, der bei jedem act-Schritt hochgezählt wird. Erst wenn der timer größer als 20 ist, darf eine neue Rakete abgefeuert werden.
  4. Wenn eine Rakete ein Ufo trifft, werden beide aus der Welt enfernt.
  5. Ufos bewegen sich langsam nach rechts und nach unten. Wenn Sie am Rand anstoßen wechseln sie die x-Richtung (Klasse Actor, Methode setLocation).
  6. UFOS droppen mit einer Wahrscheinlichkeit von 0,7% eine Bombe. (Klasse Greenfoot, Methode getRandomNumber)
  7. Wenn eine Bombe das Schiff berührt, halte das Spiel an und blende „GAME OVER“ ein.
  8. Erstelle per Zufall neue Ufos. Das neue Ufo erscheint an einer zufälligen x-Position. Die y-Position ist immer 0. Hinweis: Prüfe, ob man in der Welt eine act Methode einfügen kann.
  9. Das Schiff soll die Anzahl der abgeschossenen Ufos in einer Variablen speichern und den Wert dieser Variablen in der Welt einblenden. Hinweise: Der Zähler muss von der Klasse Rakete aus erhöht werden können. Dazu holst Du Dir im Quellcode der Klasse Rakete das Schiff über die geeignete Methode. Schaue in der Java-Dokumentation nach, wie aus einer Liste (java.util.List) das erste Element abgerufen werden kann.

Aufgabe 2

  1. Wir führen eine Variable für den Zustand des Spiels ein. Es soll die Zustände: PLAY, HIT und GAME_OVER geben.
  2. Das Schiff besitzt das neu hinzugekommene Attribut lifes, das zu Beginn des Spiels den Wert 3 bekommt. Wenn das Schiff einen Treffer kassiert, greift die Methode hit(). Sie zieht zunächst ein Leben ab und prüft dann, ob es noch ein weiteres Leben in Reserve gibt. In dem Fall geht das Programm in den Zustand HIT, andernfalls in den Zustand GAME_OVER.
  3. Im Zustand PLAY findet das ganz normale Spielgeschehen statt, wie Sie es bereits aus der ersten Version kennen.
  4. Der Zustand HIT tritt immer dann ein, wenn das Schiff einen Treffer kassiert, aber noch mindestens ein Leben auf Lager hat.
  5. Sind alle Reserveleben verbraucht, geht das Spiel in den Zustand GAME_OVER über.
  6. Nach vier Sekunden wechselt das Programm HIT nach PLAY.
  7. Bomben und Raketen werden beim Wechsel von HIT nach PLAY entfernt, damit das Schiff nicht gleich wieder getroffen wird.

Aufgabe 3

Setze folgende Forderungen im Quellcode des Spiels um:

  1. Bomben sollen mit Raketen abgeschossen werden können.
  2. Das Schiff soll sich jetzt auch nach oben und unten bewegen können.
  3. Score Zähler: Pro abgeschossenes Ufo gibt es 100 Punkte.
  4. Bei 10.000 Punkten gibt es ein Zusatzleben.
  5. Dauerfeuer abstellen. Ein Schuss pro Tastendruck.
info10/aufgaben/blaster.txt · Zuletzt geändert: 2023/04/28 22:35 von Ulrich Schneider