Class Figur
- java.lang.Object
-
- greenfoot.Actor
-
- MyActor
-
- Figur
-
public class Figur extends MyActor
Diese Klasse ist die Oberklasse fuer die Figur "Robita", "Robson" und "Robby". Programme sollen nur in den Unterklassen implementiert werden, da diese Klasse fuer Java-Beginner sehr komplex ist. Ein Figur kann sich felderweise in die vier Himmelsrichtungen im Szenario bewegen. Ueber Sensoren kann er Informationen ueber seine Umwelt erhalten.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
durst
protected int
hunger
protected int
kostenBewegung
protected int
kostenWarten
-
Fields inherited from class MyActor
betretbar, bildnummer, imageNumbers, moveable, originalImages
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
benutze(String name)
Benutzt den angegebenen Gegenstand.void
dreheLinks()
Der Figur dreht sich um 90 Grad nach links (aus der Sicht des Figurs).void
dreheRechts()
Der Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).void
einsVor()
Der Figur geht einen Schritt in die Pfeilrichtung.int
getDurst()
Gibt die Durstigkeit der Figur zurückint
getHunger()
Gibt den Sättigungsgrad der Figur zurückprotected Gegenstand
gibGegenstandUnterFigur()
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindetprotected Gegenstand
gibGegenstandUnterFigur(String name)
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindetprotected Gegenstand
gibGegenstandVorFigur(String name)
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindetboolean
istAuf(String name)
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.boolean
istAufGegenstand()
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein beliebiger Gegenstand befindet.boolean
istLinksFrei()
Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.boolean
istRechtsFrei()
Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.boolean
istVorne(String name)
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.boolean
istVorneFrei()
Der Sensor ueberprueft, ob vor dem Figur Hindernisse stehen oder nichtint
pruefe(String name)
protected void
refresh()
void
setLocation(int x, int y)
setLocation(x,y) fuer Figur wird ueberschrieben, um nicht auf Wand oder anderen Figur ziehen zu koennen!void
setRotation(int x)
setRotation(x) fuer Figur wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!void
verbraucheEnergie(int verlust)
Erhöhrt den Hunger des Figurs um den angegebenen Wert.protected boolean
verbraucheEnergie(int hunger, int durst)
void
warte()
protected void
zeichneImage()
Eine private Methode, die dafuer sorgt, dass der "Aufdruck" auf dem Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden-
Methods inherited from class MyActor
addedToWorld, getBild, getName, getX, getY, istBetretbar, istBeweglich, melde, setzeBild, warne
-
Methods inherited from class greenfoot.Actor
act, getImage, getIntersectingObjects, getNeighbours, getObjectsAtOffset, getObjectsInRange, getOneIntersectingObject, getOneObjectAtOffset, getRotation, getWorld, getWorldOfType, intersects, isAtEdge, isTouching, move, removeTouching, setImage, setImage, turn, turnTowards
-
-
-
-
Constructor Detail
-
Figur
public Figur(String name)
Ein Objekt der Klasse Figur wird exempliert bzw. instanziert.
-
-
Method Detail
-
getHunger
public int getHunger()
Gibt den Sättigungsgrad der Figur zurück- Returns:
- 0= groß - 100=satt
-
getDurst
public int getDurst()
Gibt die Durstigkeit der Figur zurück- Returns:
- 0= groß - 100=keinen Durst
-
verbraucheEnergie
public void verbraucheEnergie(int verlust)
Erhöhrt den Hunger des Figurs um den angegebenen Wert.- Parameters:
verlust
- Anzahl der verbrauchten Energiepunkte
-
verbraucheEnergie
protected boolean verbraucheEnergie(int hunger, int durst)
-
einsVor
public void einsVor()
Der Figur geht einen Schritt in die Pfeilrichtung. Das macht er nur, wenn sich keine Wand vor ihm befindet oder er nicht an der Grenze der Welt zur Wand blickt.
-
dreheRechts
public void dreheRechts()
Der Figur dreht sich um 90 Grad nach rechts (aus der Sicht des Figurs).
-
dreheLinks
public void dreheLinks()
Der Figur dreht sich um 90 Grad nach links (aus der Sicht des Figurs).
-
warte
public void warte()
-
refresh
protected void refresh()
-
pruefe
public int pruefe(String name)
-
benutze
public void benutze(String name)
Benutzt den angegebenen Gegenstand. Es koennen nur Schluessel, Schalter, Bombe, Feuerloescher und Akku benutzt werden. Dabei kann ein Schluessel nur direkt vor einem Schloss benutzt werden. Eine Bombe sprengt einen Bereich frei. Der Feuerloescher kann ein direkt vor dem Figur befindliches Feuer loeschen. Der Akku erhoeht die Resthunger des Figurs.- Parameters:
name
- Art des zu benutzenden Gegenstands ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku")
-
istAufGegenstand
public boolean istAufGegenstand()
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein beliebiger Gegenstand befindet.- Returns:
- true, wenn der Figur auf einem Gegenstand steht, sonst false
-
istAuf
public boolean istAuf(String name)
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.- Parameters:
name
- Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Brennstab", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")- Returns:
- true, wenn der Figur auf einem Gegenstand steht, sonst false
-
gibGegenstandUnterFigur
protected Gegenstand gibGegenstandUnterFigur()
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet- Returns:
- Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
-
gibGegenstandUnterFigur
protected Gegenstand gibGegenstandUnterFigur(String name)
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet- Returns:
- Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
-
istVorne
public boolean istVorne(String name)
Liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Figur gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.- Parameters:
name
- Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Brennstab", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")- Returns:
- true, wenn der Figur auf einem Gegenstand steht, sonst false
-
gibGegenstandVorFigur
protected Gegenstand gibGegenstandVorFigur(String name)
Gibt den Gegenstand zurueck, auf dem sich ein Figur befindet- Returns:
- Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
-
istVorneFrei
public boolean istVorneFrei()
Der Sensor ueberprueft, ob vor dem Figur Hindernisse stehen oder nicht- Returns:
- true, wenn vor dem Figur frei ist, sonst false
-
istRechtsFrei
public boolean istRechtsFrei()
Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.- Returns:
- true, wenn sich rechts von dem Figur eine Wand befindet, sonst false
-
istLinksFrei
public boolean istLinksFrei()
Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.- Returns:
- true, wenn sich links von dem Figur eine Wand befindet, sonst false
-
zeichneImage
protected void zeichneImage()
Eine private Methode, die dafuer sorgt, dass der "Aufdruck" auf dem Figur (Anzahl der Gegenstaende), der Akkustandsbalken und der Richtungspfeil aktualisiert werden- Overrides:
zeichneImage
in classMyActor
-
setLocation
public void setLocation(int x, int y)
setLocation(x,y) fuer Figur wird ueberschrieben, um nicht auf Wand oder anderen Figur ziehen zu koennen! -- setzt den Figur auf eine Kachel, deren Spalte x sowie Reihe y du hier vorgibst. Die Nummerierung beginnt jeweils bei 0 !!)- Overrides:
setLocation
in classMyActor
- Parameters:
x
- die x-Koordinatey
- die y-Koordinate
-
setRotation
public void setRotation(int x)
setRotation(x) fuer Figur wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!- Overrides:
setRotation
in classgreenfoot.Actor
- Parameters:
x
- die Richtung (0=Osten, 90=Sueden, 180=Westen, 270=Norden)
-
-