Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Objektorientierte Programmierung WS 2013/2014 - Datei SpielBall.java

import java.awt.Graphics;

class SpielBall extends Ball implements SpielRolle
{
   public static final int LEFTMARGIN  = 20;
   public static final int RIGHTMARGIN = 20;
   public static final int UPPERMARGIN = 40;
   public static final int LOWERMARGIN = 20;
   private SpielRolle      rolle;
   private int             xlinks, xrechts;   // x-Koordinaten des Spielbereiches
   private int             yoben, yunten;   // y-Koordinaten des Spielbereiches

   // Konstruktor
   SpielBall (int xpos, int ypos, int radius, int xlinks, int yoben,
              int xrechts, int yunten)
   {
      super(xpos, ypos, radius);

      this.xlinks  = xlinks;
      this.xrechts = xrechts;
      this.yoben   = yoben;
      this.yunten  = yunten;
   }

   // Zugriffsmethoden
   public SpielRolle getRolle ()
   {
      return rolle;
   }

   public void setRolle (SpielRolle r)
   {
      rolle = r;
   }

   // Implementieren der Schnittstelle SpielRolle
   public void moveSpielBall ()
   {   // Delegation an die Rolle

      rolle.moveSpielBall();
   }

   public void paintSpielBall (Graphics g)
   {   // Delegation an die Rolle

      rolle.paintSpielBall(g);
   }

   // Ueberschreiben der move-Methode von Ball, um im Frame zu bleiben
   public boolean blocked ()
   {   // Stoesst der Ball gegen den Rand

      return yMotion() < 0 && y() <= yoben + UPPERMARGIN
             || yMotion() > 0 && y() >= (yunten - LOWERMARGIN)
             || xMotion() < 0 && x() <= xlinks + LEFTMARGIN
             || xMotion() > 0 && x() >= (xrechts - RIGHTMARGIN);
   }

   public void move ()
   {   // bei Erreichen des Randes anhalten, sonst bewegen

      super.move();

      if (blocked()) setMotion(0, 0);
   }
}

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 26.11.2013