From 3b632e8a598bfcd75fd88d13e6d575996d98cf8b Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 12 Jul 2024 23:07:39 +0200 Subject: initial commit --- MyWorld.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 MyWorld.java (limited to 'MyWorld.java') diff --git a/MyWorld.java b/MyWorld.java new file mode 100644 index 0000000..01ac65e --- /dev/null +++ b/MyWorld.java @@ -0,0 +1,106 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) + +/** + * Die Klasse MyWorld verwaltet alle Objekte des Spiels. + * + * @author Michael Arnot + * @author Florian Fischer + * @version 2024-06-14 + */ +public class MyWorld extends World +{ + int alienAnzahl = 0; + int punkte = 0; + int zeit = 0; + + /** + * Konstruktor für Objekte der Klasse MyWorld + * + */ + public MyWorld() + { + // Erstellt eine neue Welt mit 600x400 Zellen und einer Zell-Groesse von 1x1 Pixeln. + super(600, 600, 1); + getBackground().setColor(Color.BLACK); + getBackground().fill(); + level1(); + } + + public void act() + { + zeit++; + + showText("Zeit", 500, 20); + showText("" + zeit/50, 500, 40); + + if (alienAnzahl == 0) + { + gewonnen(); + } + + showText("Punkte", 100, 20); + showText("" + punkte, 100, 40); + } + + public void reduziereAlienAnzahl() + { + alienAnzahl--; + } + + public void erhoehePunkte(int p) + { + punkte = punkte + p; + } + + /** + * Bereite die Welt fuer den Programmstart vor. + * Das heisst: Erzeuge die Anfangs-Objekte und fuege sie der Welt hinzu. + */ + private void level1() + { + Raumschiff raumschiff = new Raumschiff(); + addObject(raumschiff, 300,565); + + for (int zeile = 0; zeile < 5; zeile++) + { + for (int spalte = 0; spalte < 10; spalte++) + { + addObject(new Alien(), 148 + spalte*36, 50 + zeile*36); + alienAnzahl++; + } + } + } + + private void erzeugeSchilde() { + for (int m = 0; m < 4; m++) + { + for (int r = 0; r < 12; r++) + { + for (int f = 0; f < 2; f++) + { + addObject(new Schild(), 80 + 60 * f + 126 * m, 470 + 4*r); + addObject(new Schild(), 85 + 50 * f + 126 * m, 465 + 4*r); + } + for (int f = 0; f<10; f++) + { + addObject(new Schild(), 90 + 5 * f + 126 * m, 460 + 4*r); + } + } + } + } + + private void gewonnen() + { + showText("V I C T O R Y", 300, 300); + Greenfoot.stop(); + } + + /* + * Der Spieler hat verloren und die "Aliens" haben den Planeten erreicht + */ + public void verloren() + { + showText("G A M E O V E R", 300, 300); + Greenfoot.stop(); + } +} -- cgit v1.2.3