class Raumschiff extends Sprite {
    // Attribute der Klasse Raumschiff 
    String name;
    double vx;
    double vy;
    double beschleunigung;
    int schaden;
    // Attribute für die vier Tasten
    String tasteLinks;
    String tasteRechts;
    String tasteOben;
    String tasteUnten;

    // Konstruktor
    Raumschiff(String name, int x, int y) {
        // Konstruktor der Klasse Sprite
        super(x, y, SpriteLibrary.Space_Shooter_1, 2);
        this.name = name;
        beschleunigung = 0.2;
        vx = 0.3;
        vy = 0.7;
    }

    /* überschriebene Methode der Klasse Sprite, 
      wird 30 Mal / Sekunde aufgerufen */
    void act() {
        if (isKeyDown(tasteLinks)) {
            vx = vx - beschleunigung;
        }
        if (isKeyDown(tasteRechts)) {
            vx = vx + beschleunigung;
        }
        if (isKeyDown(tasteOben)) {
            vy = vy - beschleunigung;
        }
        if (isKeyDown(tasteUnten)) {
            vy = vy + beschleunigung;
        }
        vy = vy + 0.05;
        move(vx, vy);
        if (centerX < 30 || centerX > 770) {
            move(-vx, 0);
            vx = 0;
        }
        if (collidesWithAnyShape()) {
            vx = 0;
            vy = 0;
            schaden = schaden + 1;
            println(name + " - Schaden: " + schaden);
        }
        if (schaden == 5) {
            System.exit(0);
        }
    }

    // Methode zum Festlegen der Steuerungstasten
    public void setzeTasten(String links, String rechts, String oben, String unten) {
        tasteLinks = links;
        tasteRechts = rechts;
        tasteOben = oben;
        tasteUnten = unten;
    }
}
