import stiftUndCo.*;
import java.awt.*;

public class Billard
{
  

  private Bildschirm bildschirm;
  private Maus maus;
  private Ball ball1, ball2;
  private Ball b1, b2, b3, b4, b5;
  private double bdir;
  private boolean collide;
  private int moveb1, moveb2;

  public Billard()
  {
     bildschirm = new Bildschirm(400,300);
    bildschirm.setzeHintergrundmodus(true); 
      maus = new Maus();
  }
  
  public void pulsierendeKugeln()
{
 //Erweitere die Klasse Kugel so, dass die Kugel bei ihrer Bewegung wie ein Luftballon langsam aufgeblasen 
 //wird und dann die Luft wieder verliert, bis die ursprüngliche Größe wieder erreicht ist.
} 
  
  public void fuenfBaelle()
  {
       b1 = new Ball(100,50,15,-90,1.5,bildschirm);
       b1.setzeFuellFarbe(Color.RED);
       b2 = new Ball(70,80,20,10,2,bildschirm);
       b2.setzeFuellFarbe(Color.BLUE);
       b3 = new Ball(180,150,5,-45,1,bildschirm);
       b3.setzeFuellFarbe(Color.GREEN);
       b4 = new Ball(100,100,25,0,1,bildschirm);
       b4.setzeFuellFarbe(Color.YELLOW);
       b5 = new Ball(120,120,15,-10,2,bildschirm);
        b5.setzeFuellFarbe(Color.CYAN);
        
      
       do 
       {
         b1.bewege();
         b2.bewege();
         b3.bewege();
         b4.bewege();
         b5.bewege();
      bildschirm.aktualisiere();
         Hilfe.warte(5);
        }  
       while (!maus.istGedrueckt());

       
    }
  public void zweiBaellePrallen()
  {
    
    ball1 = new Ball(100,50,15,-90,1,bildschirm);
    ball2 = new Ball(110,250,20,70,1,bildschirm);
    ball1.setzeFuellFarbe(Color.RED);
    ball2.setzeFuellFarbe(Color.BLUE);

    do
    {

      // Abprallen vom anderen Ball
    // ball1.loesche();
    // ball2.loesche();
      for(int a=0;a < 15;a++){
      if(Math.sqrt(Hilfe.quadrat(ball1.getX()-ball2.getX())+Hilfe.quadrat(ball1.getY()-ball2.getY())) <= ball1.getRad()+ball2.getRad() )
      {
        if (!collide)
	{
	  bdir = Hilfe.arctangens((ball1.getY()-ball2.getY())/(ball2.getX()-ball1.getX()));
      	  ball1.SetzeRichtung(-180-ball1.getDir() + (2*bdir));
	  ball2.SetzeRichtung(180-(ball2.getDir() - (2*bdir)));
	  collide = true;
	}
      }
      if(moveb1 < 15)
      {
        ball1.bewege();
	moveb1++;
      }
      if(moveb2 < 10)
      {
        ball2.bewege();
	moveb2++;
      }
      }
        collide = false;
      moveb1 = 0;
      moveb2 = 0;
      //ball1.zeige();
     // ball2.zeige();
      bildschirm.aktualisiere();
      Hilfe.warte(200);
    }
    while (!maus.istGedrueckt());

    
  }
       
}        

