diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-07-12 23:07:39 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-07-12 23:13:11 +0200 |
| commit | 3b632e8a598bfcd75fd88d13e6d575996d98cf8b (patch) | |
| tree | 347b11cba6bbb7358ab1940c01a6f812a100814f /Raumschiff.java | |
| download | spaceinvaders-3b632e8a598bfcd75fd88d13e6d575996d98cf8b.tar.gz spaceinvaders-3b632e8a598bfcd75fd88d13e6d575996d98cf8b.zip | |
initial commit
Diffstat (limited to 'Raumschiff.java')
| -rw-r--r-- | Raumschiff.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Raumschiff.java b/Raumschiff.java new file mode 100644 index 0000000..4a06e60 --- /dev/null +++ b/Raumschiff.java @@ -0,0 +1,72 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) +import java.util.List; + +/** + * Das Raumschiff, das die Welt vor den Alien schuetzen soll. + */ +public class Raumschiff extends Actor +{ + boolean leertasteGedrueckt = false; + + /** + * Act - stellt das Verhalten des Raumschiffs dar. Diese Methode wird aufgerufen, + * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. + */ + public void act() + { + pruefeTastatur(); + pruefeKollision(); + } + + /** + * Reagiert auf die Pfeiltasten. + */ + public void pruefeTastatur() + { + if (Greenfoot.isKeyDown("left")) + { + setLocation(getX() - 3, getY()); + } + + if (Greenfoot.isKeyDown("right")) + { + setLocation(getX() + 3, getY()); + } + + if (Greenfoot.isKeyDown("space")) + { + if (leertasteGedrueckt == false) + { + schiessen(); + leertasteGedrueckt = true; + } + } + else + { + leertasteGedrueckt = false; + } + } + + /** + * Das Raumschiff schiesst einen Laserschuss + */ + 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); + } + } +} |
