Class ARaum

java.lang.Object
  
All Implemented Interfaces:
ea.Listung, Serializable
Direct Known Subclasses:
Aufwachraum, Grossraum, Klassenzimmer1, Neuraum, Qzi, Testraum

public abstract class ARaum
extends ea.Knoten

Abstract class Raum - Die abstrakte Klasse Raum dient als "Vorbild" für die Räume, d.h. jeder Raum erbt von dieser Klasse. Innerhalb der Klasse werden Name, Nummer, Höhe, Breite und das Zellenfeld definiert. Attribut kvx: Koordinatenverschiebung x (Bei dieser x-Koordinate startet die Figur des ersten Zellobjekts) Attribut kvy: Koordinatenverschiebung y (Bei dieser y-Koordinate startet die Figur des ersten Zellobjekts)

Version:
1.0
Author:
Quirin, KF, DS
See Also:
Serialized Form

Field Summary
protected  ea.Bild bild
           
protected  int breite
           
protected  int hoehe
           
protected  Entity interactObject
           
protected  int kvx
           
protected  int kvx_raum
           
protected  int kvy
           
protected  int kvy_raum
           
protected  Entity MoveOnEntity
           
protected  String name
           
protected static int[] speicher
           
protected  Spiel spiel
           
protected  ea.Text[][] texte
           
protected  ea.Text[][] texte2
           
protected  int[][] texteAusrichtung
           
protected  int tueranzahl
           
protected  Tuer[] tueren
           
protected  NonEntity[] tuerenOben
           
protected  Zelle[][] zellen
           
 
Fields inherited from class
farbzyklus, roh
 
Constructor Summary
ARaum(int breite, int hoehe, String name, String bildpfad, int kvx, int kvy, int kvx_raum, int kvy_raum, int tueranzahl)
          Die Methode outOfArray gibt die Zellennummer der Zelle mit den gewünschten Koordinaten an.
 
Method Summary
 void addEntity(Entity entityobj, int posx, int posy)
          Die Methode addEntity fügt ein Entityobjekt in einer Zeller der selbstgewählten Position ein.
 void addGrossEntity(Entity entityobj, int posx, int posy)
          addGrossEntity: Fügt ein Entityobjekt hinzu, das größer als eine Zelle ist
 void addGrossText(int x, int y, int anpassungX, int anpassungY, String inhalt, int ausrichtung, String farbe)
          addGrossText fügt einem Entityobjekt, das größer als eine Zelle ist eine Text hinzu.
 void addGrossText2(int x, int y, int anpassungX, int anpassungY, String inhalt, int ausrichtung, String farbe)
          addGrossText2 fügt einem Entityobjekt, das größer als eine Zelle ist eine Text hinzu.
 void addText(int x, int y, int anpassungX, int anpassungY, String inhalt, int ausrichtung, String farbe)
          Method addText: Fuegt einer Zelle Text1 zu Je nach angegebener Ausrichtung wird der Text moeglichst gut angepasst Fuer die Feinanpassung(vor allem bei ausrichtung=4) sind anpassungX, anpassungY vorgesehen
 void addText2(int x, int y, int anpassungX, int anpassungY, String inhalt, int ausrichtung, String farbe)
          Method addText2: Fuegt einer Zelle Text2 zu (Notwendig um Ueberlappungen von Spieler und Text zu vermeiden Je nach angegebener Ausrichtung wird der Text moeglichst gut angepasst Fuer die Feinanpassung(vor allem bei ausrichtung=4) sind anpassungX, anpassungY vorgesehen Speichert die Ausrichtung von Text2 fuer interactText in Spiel
 void addTuerFigur(int index, int anpassung)
          addTuerFigur fuegt die Figur einer Tuer ein (fuer Tueren mit ausrichtung 1 bzw. oben)
 int getNextDoor(int posx, int posy, int blickrichtung)
          getNextDoor gibt den Index der Tuer des naechsten Raumes zurueck
 int gibX(int x)
          gibX gibt x in Pixeln an
 int gibY(int y)
          gibY gibt y in Pixeln an
 void interact(int posx, int posy)
          Methode die durch einen von der Methode tasteReagieren übergebenen Index auf die ermittelte Zelle für eine Interaktion zugreift Es wird geprüft ob die Zelle ein Entityobjekt enthält Wenn das der Fall ist wird die Methode onEntityInteract des Objekts aufgerufen
 String interactDoor(int posx, int posy, int blickrichtung)
          interactDoor prüft ob der Spieler auf Türfeld steht und ob der Spieler zur Tür blickt Wenn beide Bedingungen erfüllt wird mit der Tür interagiert
 void laden(int posx, int posy, int index)
          Method laden: laedt den speicher und loescht alle nicht benoetigten Objekte aus dem Raum TODO
 void moveEntity(int posx, int posy, int newposx, int newposy)
          Die Methode moveEntity bewegt ein Entityobjekt von einer Zelle zur anderen.
 void removeEntity(int posx, int posy)
          Die Methode removeEntity löscht das Entityobjekt, das in einer gewählten Zelle liegt.
 void setzeSpiel(Spiel spiel)
           
 void speichern()
          Method speichern: Soll die veraenderbaren Objekte eines Raumes speichern TODO
 boolean zelleBetretbar(int posx, int posy)
          zelleBetretbar gibt aus ob eine die Zelle mit dem Index der von einer Person betreten werden soll ein Entityobjekt enthält und ob dieses begehbar ist oder nicht Außerdem prüft die Funktion ob die aufgerufene Zelle im Raster liegt
 
Methods inherited from class
add, add, alleElemente, besitzt, bewegen, dimension, entfernen, entfernenOhnePhysikAbmelden, flaechen, leeren, leerenOhnePhysikAbmelden, schneidet, verschieben, zeichnen
 
Methods inherited from class
aktivMachen, beinhaltet, bewegen, fallReagierbarAnmelden, halbesAlpha, heavyComputingSetzen, hoehenUnterschied, inFlaeche, kritischeTiefeSetzen, leuchterAbmelden, leuchterAnmelden, loeschen, mittelPunkt, mittelpunktSetzen, mittelpunktSetzen, neutralMachen, passivMachen, position, positionSetzen, positionSetzen, positionX, positionY, problem, schwerkraftAktivSetzen, sichtbar, sichtbarSetzen, sprung, stehReagierbarAnmelden, steht, stehtAuf, verschieben, zeichnenBasic, zentrum, zuFarbeKonvertieren
 
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bild

protected ea.Bild bild

breite

protected int breite

hoehe

protected int hoehe

interactObject

protected Entity interactObject

kvx

protected int kvx

kvx_raum

protected int kvx_raum

kvy

protected int kvy

kvy_raum

protected int kvy_raum

MoveOnEntity

protected Entity MoveOnEntity

name

protected String name

speicher

protected static int[] speicher

spiel

protected Spiel spiel

texte

protected ea.Text[][] texte

texte2

protected ea.Text[][] texte2

texteAusrichtung

protected int[][] texteAusrichtung

tueranzahl

protected int tueranzahl

tueren

protected Tuer[] tueren

tuerenOben

protected NonEntity[] tuerenOben

zellen

protected Zelle[][] zellen
Constructor Detail

ARaum

public ARaum(int breite,
             int hoehe,
             String name,
             String bildpfad,
             int kvx,
             int kvy,
             int kvx_raum,
             int kvy_raum,
             int tueranzahl)
Die Methode outOfArray gibt die Zellennummer der Zelle mit den gewünschten Koordinaten an.

Parameters:
kvx - Koordinatenverschiebung x (Bei dieser x-Koorinate startet die Figur des ersten Zellobjekts)
kvy - Koordinatenverschiebung y (Bei dieser y-Koorinate startet die Figur des ersten Zellobjekts)
kvx_raum - Koordinatenverschiebung x (Bei dieser x-Koorinate startet die Figur des Raums)
kvy_raum - Koordinatenverschiebung y (Bei dieser y-Koorinate startet die Figur des Raums)
Method Detail

addEntity

public void addEntity(Entity entityobj,
                      int posx,
                      int posy)
Die Methode addEntity fügt ein Entityobjekt in einer Zeller der selbstgewählten Position ein. by Konsti: außerdem wird der Entity-Knoten noch an diesen Knoten angemeldet.

Parameters:
entityobj - Das entityobjekt, das eingefügt werden soll.
posx - Die x Koordinate der Zelle.
posy - Die y Koordinate der Zelle.

addGrossEntity

public void addGrossEntity(Entity entityobj,
                           int posx,
                           int posy)
addGrossEntity: Fügt ein Entityobjekt hinzu, das größer als eine Zelle ist

Parameters:
entityobj - Das entityobjekt, das eingefügt werden soll.
posx - Die x Koordinate der Zelle.
posy - Die y Koordinate der Zelle. Aus der figurenbreite_x und der figurenbreite_y wird die größer des Objekts in Zellen ermittelt. Je nachdem wie groß das Objekt ist werden nun entsprechend viele Zellen mit dem Objekt gefüllt Danach wird die Position des Objekts korrigiert und des wird am Knoten angemeldet

addGrossText

public void addGrossText(int x,
                         int y,
                         int anpassungX,
                         int anpassungY,
                         String inhalt,
                         int ausrichtung,
                         String farbe)
addGrossText fügt einem Entityobjekt, das größer als eine Zelle ist eine Text hinzu. Der Ablauf entspricht dem Ablauf von addText. Es werden lediglich mehrere Zellen mit Texten gefüllt und die Position des Textes wird an die Größe des Objekts angepasst


addGrossText2

public void addGrossText2(int x,
                          int y,
                          int anpassungX,
                          int anpassungY,
                          String inhalt,
                          int ausrichtung,
                          String farbe)
addGrossText2 fügt einem Entityobjekt, das größer als eine Zelle ist eine Text hinzu. Der Ablauf entspricht dem Ablauf von addText2. Es werden lediglich mehrere Zellen mit Texten gefüllt und die Position des Textes wird an die Größe des Objekts angepasst


addText

public void addText(int x,
                    int y,
                    int anpassungX,
                    int anpassungY,
                    String inhalt,
                    int ausrichtung,
                    String farbe)
Method addText: Fuegt einer Zelle Text1 zu Je nach angegebener Ausrichtung wird der Text moeglichst gut angepasst Fuer die Feinanpassung(vor allem bei ausrichtung=4) sind anpassungX, anpassungY vorgesehen

Parameters:
x, - y: Koordinaten der Zelle der ein Text hinzugefuegt werden soll
anpassungX, - anpassungY: Passt die Verschiebung des Textes an(fuer ausrichtung=4 ist anpassungX unbedingt noetig)
inhalt: - Inhalt des Textes
ausrichtung: - Ausrichtung des Textes (1=oben, 2=rechts, 3=unten, 4=links(fuer ausrichtung=4 ist anpassungX unbedingt noetig))
farbe: - Farbe des Textes

addText2

public void addText2(int x,
                     int y,
                     int anpassungX,
                     int anpassungY,
                     String inhalt,
                     int ausrichtung,
                     String farbe)
Method addText2: Fuegt einer Zelle Text2 zu (Notwendig um Ueberlappungen von Spieler und Text zu vermeiden Je nach angegebener Ausrichtung wird der Text moeglichst gut angepasst Fuer die Feinanpassung(vor allem bei ausrichtung=4) sind anpassungX, anpassungY vorgesehen Speichert die Ausrichtung von Text2 fuer interactText in Spiel

Parameters:
x, - y: Koordinaten der Zelle der ein Text hinzugefuegt werden soll
anpassungX, - anpassungY: Passt die Verschiebung des Textes an(fuer ausrichtung=4 ist anpassungX unbedingt noetig)
inhalt: - Inhalt des Textes
ausrichtung: - Ausrichtung des Textes (1=oben, 2=rechts, 3=unten, 4=links(fuer ausrichtung=4 ist anpassungX unbedingt noetig))
farbe: - Farbe des Textes

addTuerFigur

public void addTuerFigur(int index,
                         int anpassung)
addTuerFigur fuegt die Figur einer Tuer ein (fuer Tueren mit ausrichtung 1 bzw. oben)

Parameters:
index - A index der Tuer
anpassung - A passt die Verschiebung der Figur in y-Richtung an

getNextDoor

public int getNextDoor(int posx,
                       int posy,
                       int blickrichtung)
getNextDoor gibt den Index der Tuer des naechsten Raumes zurueck


gibX

public int gibX(int x)
gibX gibt x in Pixeln an


gibY

public int gibY(int y)
gibY gibt y in Pixeln an


interact

public void interact(int posx,
                     int posy)
Methode die durch einen von der Methode tasteReagieren übergebenen Index auf die ermittelte Zelle für eine Interaktion zugreift Es wird geprüft ob die Zelle ein Entityobjekt enthält Wenn das der Fall ist wird die Methode onEntityInteract des Objekts aufgerufen

Parameters:
index - A parameter

interactDoor

public String interactDoor(int posx,
                           int posy,
                           int blickrichtung)
interactDoor prüft ob der Spieler auf Türfeld steht und ob der Spieler zur Tür blickt Wenn beide Bedingungen erfüllt wird mit der Tür interagiert


laden

public void laden(int posx,
                  int posy,
                  int index)
Method laden: laedt den speicher und loescht alle nicht benoetigten Objekte aus dem Raum TODO


moveEntity

public void moveEntity(int posx,
                       int posy,
                       int newposx,
                       int newposy)
Die Methode moveEntity bewegt ein Entityobjekt von einer Zelle zur anderen.

Parameters:
posx - Die x Koordinate der alten Zelle.
posy - Die y Koordinate der alten Zelle.
newposx - Die x Koordinate der neuen Zelle.
newposy - Die y Koordinate der neuen Zelle.

removeEntity

public void removeEntity(int posx,
                         int posy)
Die Methode removeEntity löscht das Entityobjekt, das in einer gewählten Zelle liegt.

Parameters:
posx - Die x Koordinate der Zelle.
posy - Die y Koordinate der Zelle.

setzeSpiel

public void setzeSpiel(Spiel spiel)

speichern

public void speichern()
Method speichern: Soll die veraenderbaren Objekte eines Raumes speichern TODO


zelleBetretbar

public boolean zelleBetretbar(int posx,
                              int posy)
zelleBetretbar gibt aus ob eine die Zelle mit dem Index der von einer Person betreten werden soll ein Entityobjekt enthält und ob dieses begehbar ist oder nicht Außerdem prüft die Funktion ob die aufgerufene Zelle im Raster liegt