aboutsummaryrefslogtreecommitdiff
path: root/MyWorld.java
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-07-12 23:07:39 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-07-12 23:13:11 +0200
commit3b632e8a598bfcd75fd88d13e6d575996d98cf8b (patch)
tree347b11cba6bbb7358ab1940c01a6f812a100814f /MyWorld.java
downloadspaceinvaders-3b632e8a598bfcd75fd88d13e6d575996d98cf8b.tar.gz
spaceinvaders-3b632e8a598bfcd75fd88d13e6d575996d98cf8b.zip
initial commit
Diffstat (limited to 'MyWorld.java')
-rw-r--r--MyWorld.java106
1 files changed, 106 insertions, 0 deletions
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();
+ }
+}