WiSe Herdenmanagement
Version: 2006-03-14

herdenmanagement
Class KreisendesRindvieh

java.lang.Object
  extended by herdenmanagement.PositionsElement
      extended by herdenmanagement.Rindvieh
          extended by herdenmanagement.KreisendesRindvieh
All Implemented Interfaces:
java.lang.Runnable

public class KreisendesRindvieh
extends Rindvieh
implements java.lang.Runnable

Die Klasse implementiert ein spezielles Rindvieh, welches sich um einen Mittelpunkt automatisch im Kreis bewegt, so lange sich dieser nicht am Rand befindet.

Damit eignet sich dieses Rindvieh hervorrangend, um bspw. um eine kreisende (überwachende) Bewegung um ein normales Rindvieh herum durchzuführen, welches mit seinem jeweilgen Standort auf dem Acker die Mittelpunktkoordinaten für das kreisende Rindvieh vorgibt.

Zur besseren Unterscheidung zu einem "normalen" Rindvieh, erfolgt die grafische Darstellung in schwarz/weiß.

Version:
$Revision: 1.6 $
Author:
Steffen Greiffenberg, Andreas Gehlert, Robert Braun

Field Summary
private  int alteXPosition
          Gibt die x-Koordinate an, um die sich das KreisendeRindvieh bewegt.
private  int alteYPosition
          Gibt die y-Koordinate an, um die sich das KreisendeRindvieh bewegt.
protected  javax.swing.ImageIcon KUH_HINTEN_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs von hinten
protected  javax.swing.ImageIcon KUH_LINKS_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs von links
protected  javax.swing.ImageIcon KUH_RECHTS_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs von rechts
protected  javax.swing.ImageIcon KUH_VORN_UEBERWACHEND
          Dateinname des Bildes eines überwachenden Rindviehs von vorn
private  boolean kurzUnterbrechen
          Wenn das KreisendeRindvieh seine neue Position erhält, müssen wir seine ursprüngliche Kreisbewegung für einen Moment anhalten (kurzUnterbrechen=true).
private  boolean mussAufhoeren
          Gibt an, ob die Überwachung (der Thread!)
 
Fields inherited from class herdenmanagement.Rindvieh
bilder, KUH_GRAS, KUH_GRAS_TANZ, KUH_GRAS_UEBERWACHEND, KUH_HINTEN, KUH_LINKS, KUH_MILCH, KUH_MILCH_TANZ, KUH_MILCH_UEBERWACHEND, KUH_RAUCH, KUH_RAUCH_TANZ, KUH_RAUCH_UEBERWACHEND, KUH_RECHTS, KUH_VORN, milchImEuter, name, richtung, RICHTUNG_NORD, RICHTUNG_OST, RICHTUNG_SUED, RICHTUNG_WEST
 
Fields inherited from class herdenmanagement.PositionsElement
acker, xPosition, yPosition
 
Constructor Summary
KreisendesRindvieh(java.lang.String name)
          Default-Konstruktor, der nur den übergebenen Namen an seinen vererbten Konstruktor weiterreicht.
 
Method Summary
 void beendeBewegung()
          Beendet die Überwachung, indem die Variable mussAufhoeren auf true gesetzt wird.
 void beginneBewegung()
          Beginnt die Überwachungssequenz.
 void run()
          Hier lassen wir das Rindvieh im Eck rennen.
 void setzeUrsprung(int x, int y)
          Setzt den Ursprung, um den sich das KreisendeRindvieh bewegt neu.
protected  void warte()
          Wir überschreiben die Methode warte(), um unser KreisendeRindvieh schneller zu bewegen.
 
Methods inherited from class herdenmanagement.Rindvieh
aktualisiereAcker, dreheDichLinksRum, dreheDichRechtsRum, frissGras, gehe, geheVor, geheZurueck, gehtsDaWeiter, gehtsDaWeiter, gehtsDaWeiterVor, gehtsDaWeiterZurueck, getName, gibMilch, gibNaechstePosition, istMilchImEuter, raucheGras, setzeBild, warte, warteLange
 
Methods inherited from class herdenmanagement.PositionsElement
gibXPosition, gibYPosition, ladeBild, ladeBild, paint, setzeAcker
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

alteXPosition

private int alteXPosition
Gibt die x-Koordinate an, um die sich das KreisendeRindvieh bewegt.


alteYPosition

private int alteYPosition
Gibt die y-Koordinate an, um die sich das KreisendeRindvieh bewegt.


mussAufhoeren

private boolean mussAufhoeren
Gibt an, ob die Überwachung (der Thread!) beendet werden soll oder nicht.


kurzUnterbrechen

private boolean kurzUnterbrechen
Wenn das KreisendeRindvieh seine neue Position erhält, müssen wir seine ursprüngliche Kreisbewegung für einen Moment anhalten (kurzUnterbrechen=true).


KUH_HINTEN_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_HINTEN_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs von hinten

See Also:
Rindvieh.bilder

KUH_RECHTS_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_RECHTS_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs von rechts

See Also:
Rindvieh.bilder

KUH_VORN_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_VORN_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs von vorn

See Also:
Rindvieh.bilder

KUH_LINKS_UEBERWACHEND

protected final javax.swing.ImageIcon KUH_LINKS_UEBERWACHEND
Dateinname des Bildes eines überwachenden Rindviehs von links

See Also:
Rindvieh.bilder
Constructor Detail

KreisendesRindvieh

public KreisendesRindvieh(java.lang.String name)
Default-Konstruktor, der nur den übergebenen Namen an seinen vererbten Konstruktor weiterreicht. Zur besseren Unterscheidung dieses Rindviehs von normalen Rindviechern, wird ein anderes Bild gesetzt.

Parameters:
name - Name des BewachendenRindviehs.
Method Detail

beginneBewegung

public void beginneBewegung()
Beginnt die Überwachungssequenz. Das KreisendeRindvieh fängt dabei an, selbständig um seinen Ursprung im Kreis zu laufen.
Da wir das KreisendeRindvieh separat bewegen wollen, brauchen wir einen eigenen Thread.


beendeBewegung

public void beendeBewegung()
Beendet die Überwachung, indem die Variable mussAufhoeren auf true gesetzt wird.

See Also:
mussAufhoeren

run

public void run()
Hier lassen wir das Rindvieh im Eck rennen. Das passiert so lange, wie mussAufhoeren=false gilt.

Specified by:
run in interface java.lang.Runnable

warte

protected void warte()
Wir überschreiben die Methode warte(), um unser KreisendeRindvieh schneller zu bewegen.

Overrides:
warte in class Rindvieh

setzeUrsprung

public void setzeUrsprung(int x,
                          int y)
Setzt den Ursprung, um den sich das KreisendeRindvieh bewegt neu. Dazu wird zuerst die Kreisbewegung angehalten, der Ursprung verändert und die Bewegung wieder fortgesetzt, so lange sich der Ursprung nicht auf einer Randposition befindet.

Parameters:
x - neue x-Koordinate des Ursprungs
y - neue y-Koordinate des Urpsrungs

WiSe Herdenmanagement
Version: 2006-03-14

Letzte Änderung am 17. März 2006 um 10:05 Uhr
Robert Braun, generiert durch javadoc