
/**
 * Erzeuge Biene als Kombination von Grundformen
 */
public class Biene
{
    //Deklaration der notwendigunge Objekte zur Erzeugung einer Biene
    private Kreis kopf;
    private Kreis flügel1, flügel2;
    private Ellipse bauch;
    private Dreieck stachel;
    private Kreis auge;
    private Rechteck streifen1, streifen2;
    private Rechteck antenne1, antenne2;
    private Kreis fühler1, fühler2;
    

    /**
     * Konstruktor für ein Bienen-Objekt
     */
    public Biene()
    {
        //initialisiere die Attribute
        flügel1 = new Kreis(40, 58, 30);
        flügel2 = new Kreis(75, 60, 30);
        bauch = new Ellipse(50, 100, 90, 75);
        kopf = new Kreis(120, 98, 30);
        stachel = new Dreieck(40,135, 10, 10);
        auge = new Kreis(150, 113, 8);
        streifen1 = new Rechteck(70, 104, 8, 65);
        streifen2 = new Rechteck(100, 103, 8, 68);
        antenne1 = new Rechteck(135, 70, 4, 35);
        antenne2 = new Rechteck(160, 70, 4, 35);
        fühler1 = new Kreis(132, 63, 6);
        fühler2 = new Kreis(157, 63, 6);
        
        kopf.setzeFarbe("schwarz");
        bauch.setzeFarbe("gelb");
        flügel1.setzeFarbe("weiss");
        flügel2.setzeFarbe("weiss");
        stachel.setzeFarbe("schwarz");
        auge.setzeFarbe("weiss");
        streifen1.setzeFarbe("schwarz");
        streifen2.setzeFarbe("schwarz");
        stachel.setzeAusrichtung("W");
        antenne1.setzeFarbe("schwarz");
        antenne2.setzeFarbe("schwarz");
        fühler1.setzeFarbe("rot");
        fühler2.setzeFarbe("rot");
        
        
    }

    /**
     * Verändere die Position der Objekte die die Biene bilden
     */
   public void verändereHorizontalePosition(int entfernung)
    {
        //nach rechts bewegen
         if (entfernung >0){   
        int i=0;
         while(i<entfernung)
        {
            kopf.horizontalBewegen(6);
            bauch.horizontalBewegen(6);
            flügel1.horizontalBewegen(6);
            flügel2.horizontalBewegen(6);
            stachel.horizontalBewegen(6);
            antenne1.horizontalBewegen(6);
            antenne2.horizontalBewegen(6);
            fühler1.horizontalBewegen(6);
            fühler2.horizontalBewegen(6);
            auge.horizontalBewegen(6);
            streifen1.horizontalBewegen(6);
            streifen2.horizontalBewegen(6);
            i = i+6;
        }
        }
        //nach links bewegen
         else {
           int i=0;
        while(i>entfernung)
        {
            kopf.horizontalBewegen(-6);
            bauch.horizontalBewegen(-6);
            flügel1.horizontalBewegen(-6);
            flügel2.horizontalBewegen(-6);
            stachel.horizontalBewegen(-6);
            antenne1.horizontalBewegen(-6);
            antenne2.horizontalBewegen(-6);
            fühler1.horizontalBewegen(-6);
            fühler2.horizontalBewegen(-6);
            auge.horizontalBewegen(-6);
            streifen1.horizontalBewegen(-6);
            streifen2.horizontalBewegen(-6);
            i = i-6;
        }           
           
        }
    }
    
    public void verändereVertikalePosition(int entfernung)
    {
        //nach unten bewegen
        if (entfernung >0){   
        int i=0;
        while(i<entfernung)
        {
            kopf.vertikalBewegen(6);
            bauch.vertikalBewegen(6);
            flügel1.vertikalBewegen(6);
            flügel2.vertikalBewegen(6);
            stachel.vertikalBewegen(6);
            antenne1.vertikalBewegen(6);
            antenne2.vertikalBewegen(6);
            fühler1.vertikalBewegen(6);
            fühler2.vertikalBewegen(6);
            auge.vertikalBewegen(6);
            streifen1.vertikalBewegen(6);
            streifen2.vertikalBewegen(6);
            i = i+6;
        }
       }
       //nach oben bewegen
       else {
           int i=0;
        while(i>entfernung)
        {
            kopf.vertikalBewegen(-6);
            bauch.vertikalBewegen(-6);
            flügel1.vertikalBewegen(-6);
            flügel2.vertikalBewegen(-6);
            stachel.vertikalBewegen(-6);
            antenne1.vertikalBewegen(-6);
            antenne2.vertikalBewegen(-6);
            fühler1.vertikalBewegen(-6);
            fühler2.vertikalBewegen(-6);
            auge.vertikalBewegen(-6);
            streifen1.vertikalBewegen(-6);
            streifen2.vertikalBewegen(-6);
            i = i-6;
        }           
           
        }
    }
    
    public void bewegeZuPosition(int xPos, int yPos){
        verändereHorizontalePosition(xPos-bauch.gibXposition());
        verändereVertikalePosition(yPos-bauch.gibYposition());
    }
}
