From 3b632e8a598bfcd75fd88d13e6d575996d98cf8b Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 12 Jul 2024 23:07:39 +0200 Subject: initial commit --- Raumschiff.java | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Raumschiff.java (limited to 'Raumschiff.java') 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); + } + } +} -- cgit v1.2.3