From fddabffaab171d5c2b8d5d6005681ab15b70bc10 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 12 Jul 2024 23:19:16 +0200 Subject: remove all game logic except spaceship movement --- Alien.java | 37 ---------------------- Laser.java | 11 ------- Lazer.java | 11 ------- MyWorld.java | 59 +--------------------------------- Projektil.java | 29 ----------------- Raumschiff.java | 31 ------------------ Schild.java | 27 ---------------- project.greenfoot | 95 ++++++++++--------------------------------------------- 8 files changed, 18 insertions(+), 282 deletions(-) delete mode 100644 Laser.java delete mode 100644 Lazer.java delete mode 100644 Projektil.java delete mode 100644 Schild.java diff --git a/Alien.java b/Alien.java index 06775b8..95a79ae 100644 --- a/Alien.java +++ b/Alien.java @@ -16,8 +16,6 @@ public class Alien extends Actor { bewegen(); schiessen(); - pruefeSieg(); - pruefeKollision(); } /** @@ -36,42 +34,7 @@ public class Alien extends Actor } } - /** - * Wenn ein Alien den unteren Rand des Bildschirms erreicht, ist das Spiel - * verloren. - */ - private void pruefeSieg() - { - if (getY() >= 590) - { - ((MyWorld)getWorld()).verloren(); - } - } - - /** - * Ueberprueft ob ein Alien von einem Projektil getroffen wurde. - */ - private void pruefeKollision() - { - if (isTouching(Laser.class)) - { - removeTouching(Laser.class); // Projektil wird zerstört - Greenfoot.playSound("Explosion.wav"); - ((MyWorld)getWorld()).erhoehePunkte(50); // Spieler bekommt Punkte - ((MyWorld)getWorld()).reduziereAlienAnzahl(); - getWorld().removeObject(this); // Das Alien selber wird zerstört - } - } - - /** - * Feuert einen Schuss ab mit einer Wahrscheinlichkeit von 0.04%. - */ private void schiessen() { - if (Greenfoot.getRandomNumber(10000) <= 4) - { - Lazer lazer = new Lazer(); - getWorld().addObject(lazer, getX(),getY()); - } } } diff --git a/Laser.java b/Laser.java deleted file mode 100644 index 9dd02ef..0000000 --- a/Laser.java +++ /dev/null @@ -1,11 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) - -/** - * Projektile des Raumschiffs. - */ -public class Laser extends Projektil -{ - public Laser() { - geschwindigkeit = 6; - } -} diff --git a/Lazer.java b/Lazer.java deleted file mode 100644 index 5dbfb1f..0000000 --- a/Lazer.java +++ /dev/null @@ -1,11 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) - -/** - * Projektile der Aliens. - */ -public class Lazer extends Projektil -{ - public Lazer() { - geschwindigkeit = -5; - } -} diff --git a/MyWorld.java b/MyWorld.java index 04b1da8..a2654ad 100644 --- a/MyWorld.java +++ b/MyWorld.java @@ -9,8 +9,6 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) */ public class MyWorld extends World { - int alienAnzahl = 0; - int punkte = 0; int zeit = 0; /** @@ -23,7 +21,7 @@ public class MyWorld extends World super(600, 600, 1); getBackground().setColor(Color.BLACK); getBackground().fill(); - level1(); + addObject(new Raumschiff(), 300, 565); } public void act() @@ -32,61 +30,6 @@ public class MyWorld extends World 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(), 118 + spalte*42, 50 + zeile*38); - 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() diff --git a/Projektil.java b/Projektil.java deleted file mode 100644 index 8d73aec..0000000 --- a/Projektil.java +++ /dev/null @@ -1,29 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -/** - * Oberklasse aller Projektile im Spiel. - * - * Ein Projektil bewegt sich mit seiner aktuellen Geschwindigkeit nach unten. - * - */ -public class Projektil extends Actor -{ - int geschwindigkeit = 1; - - /** - * Act - bewegt das Projektil. Diese Methode wird aufgerufen, - * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. - */ - public void act() - { - bewegen(); - } - - private void bewegen() - { - setLocation(getX(), getY() - geschwindigkeit); - if (getY() == 0 || getY() == 599) - { - getWorld().removeObject(this); - } - } -} diff --git a/Raumschiff.java b/Raumschiff.java index 4a06e60..0458a7b 100644 --- a/Raumschiff.java +++ b/Raumschiff.java @@ -6,7 +6,6 @@ import java.util.List; */ public class Raumschiff extends Actor { - boolean leertasteGedrueckt = false; /** * Act - stellt das Verhalten des Raumschiffs dar. Diese Methode wird aufgerufen, @@ -15,7 +14,6 @@ public class Raumschiff extends Actor public void act() { pruefeTastatur(); - pruefeKollision(); } /** @@ -32,19 +30,6 @@ public class Raumschiff extends Actor { setLocation(getX() + 3, getY()); } - - if (Greenfoot.isKeyDown("space")) - { - if (leertasteGedrueckt == false) - { - schiessen(); - leertasteGedrueckt = true; - } - } - else - { - leertasteGedrueckt = false; - } } /** @@ -52,21 +37,5 @@ public class Raumschiff extends Actor */ public void schiessen() { - Greenfoot.playSound("EnergyGun.wav"); - Laser laser = new Laser(); - getWorld().addObject(laser, getX(),getY()); - } - - /** - * Ueberprueft ob das Raumschiff von einem Alien getroffen wurde. - */ - private void pruefeKollision() - { - if (isTouching(Lazer.class)) - { - removeTouching(Lazer.class); - ((MyWorld)getWorld()).verloren(); - getWorld().removeObject(this); - } } } diff --git a/Schild.java b/Schild.java deleted file mode 100644 index 2438356..0000000 --- a/Schild.java +++ /dev/null @@ -1,27 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) - -/** - * Ein Schild blockt Projektile und wird danach zerstoert. - */ -public class Schild extends Actor -{ - /** - * Act - prueft ob das Schild etwas anderes beruehrt. Diese Methode wird aufgerufen, - * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. - */ - public void act() - { - pruefeKollision(); - } - - private void pruefeKollision() - { - if (isTouching(Lazer.class) || isTouching(Laser.class)) - { - removeTouching(Laser.class); - removeTouching(Lazer.class); - removeTouching(Schild.class); - getWorld().removeObject(this); // Zerstoere das Schild selbst - } - } -} diff --git a/project.greenfoot b/project.greenfoot index 98eb5af..8325de9 100644 --- a/project.greenfoot +++ b/project.greenfoot @@ -1,49 +1,16 @@ #Greenfoot project file class.Alien.image=yellow.png -class.Laser.image=laser.png -class.Lazer.image=laser2.png class.Raumschiff.image=player.png -class.Schild.image=shieldpart.png dependency1.from=MyWorld dependency1.to=Raumschiff dependency1.type=UsesDependency -dependency10.from=Schild -dependency10.to=Lazer -dependency10.type=UsesDependency -dependency11.from=Schild -dependency11.to=Laser -dependency11.type=UsesDependency -dependency2.from=MyWorld -dependency2.to=Alien -dependency2.type=UsesDependency -dependency3.from=MyWorld -dependency3.to=Schild -dependency3.type=UsesDependency -dependency4.from=Alien -dependency4.to=MyWorld -dependency4.type=UsesDependency -dependency5.from=Alien -dependency5.to=Lazer -dependency5.type=UsesDependency -dependency6.from=Alien -dependency6.to=Laser -dependency6.type=UsesDependency -dependency7.from=Raumschiff -dependency7.to=Laser -dependency7.type=UsesDependency -dependency8.from=Raumschiff -dependency8.to=MyWorld -dependency8.type=UsesDependency -dependency9.from=Raumschiff -dependency9.to=Lazer -dependency9.type=UsesDependency -editor.fx.0.height=1049 -editor.fx.0.width=634 -editor.fx.0.x=3203 -editor.fx.0.y=3 -height=1049 -package.numDependencies=11 -package.numTargets=7 +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +height=521 +package.numDependencies=1 +package.numTargets=3 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -57,58 +24,30 @@ readme.name=@README readme.width=49 readme.x=10 readme.y=10 -simulation.speed=52 -target1.height=50 +simulation.speed=50 +target1.height=70 target1.name=Alien target1.showInterface=false target1.type=ClassTarget -target1.width=80 +target1.width=120 target1.x=0 target1.y=0 -target2.height=50 -target2.name=Laser +target2.height=70 +target2.name=Raumschiff target2.showInterface=false target2.type=ClassTarget -target2.width=80 +target2.width=120 target2.x=0 target2.y=0 target3.height=70 -target3.name=Projektil +target3.name=MyWorld target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 -target4.height=70 -target4.name=Lazer -target4.showInterface=false -target4.type=ClassTarget -target4.width=120 -target4.x=0 -target4.y=0 -target5.height=50 -target5.name=MyWorld -target5.showInterface=false -target5.type=ClassTarget -target5.width=80 -target5.x=0 -target5.y=0 -target6.height=50 -target6.name=Raumschiff -target6.showInterface=false -target6.type=ClassTarget -target6.width=100 -target6.x=0 -target6.y=0 -target7.height=70 -target7.name=Schild -target7.showInterface=false -target7.type=ClassTarget -target7.width=120 -target7.x=0 -target7.y=0 version=3.1.0 -width=634 +width=1914 world.lastInstantiated=MyWorld -xPosition=2563 -yPosition=3 +xPosition=1923 +yPosition=531 -- cgit v1.2.3