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
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
changeRoom Wechselt den Raum
Ablauf: 1.Ueberprueft ob sich in der aktuellen Zelle eine Tuer befindet und loescht alle vorhandenen Personen-->code: changeRoom2()
2.Ruft intaractDoor fuer die aktuelle Zelle auf (Rueckgabe: String zielraum) -->code: changeRoom2()
3.Je nach Zielraum wird die Zieltuer des neuen Raumes und der neue Raum festgelegt -->code: changeRoom2(), changeRoom3()
(aus Gruenden der korrekten Darstellung muessen Raum und Spieler abgemeldet und neu eingebungden werden
4.Hat eine Raumaenderung stattgefunden so wird die aktuelle Musik angehalten, der Tuersound abgespielt und nach einer
bestimmten Zeit ein neuer Song abgespielt -->code: changeRoom3()
errechneBetretbar gibt je nachdem welche blickrichtung die Person besitzt an ob die Zelle zu der sie blickt betretbar ist
Achtung: In TasteReagiebar wird die Figur erst gedreht und dann wird geprueft ob die Zelle zu der die Figur blickt betretbar ist
Wird keine Pfeiltaste gedrueckt wird die Methode nicht aufgerufen
Method hauptmenueEin
Erstellt Hauptmenütexte und legt Inhalt, Position, etc. fest
Jeder Text wird von oben nach unten sortiert in existingText gespeichert um das Scrollen zu ermöglichen
Method impressumEin
Erstellt Impressumtexte und legt Inhalt, Position, etc. fest
Jeder Text wird in extistingText gespeichert um eine einfach Steuerung der Bewegung der Texte zu ermöglichen
Ein Ticker mit bestimmten Aufrufsintervall und vy(y-Änderung der Texte bei jedem Tickeraufruf) werden festgelgt
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
Method ladebox: 1.Vergleicht chosenText mit den Feldern von spielstaende[]
2.Prueft ob der Text auf einen Spielstand oder auf ein Neues Spiel verweist
Spielstand: Sprechblase zum Laden und Loeschen wird erstellt
Neues Spiel: Sprechblase zum Erstellen eines neuen Spielstandes wird erstellt
moveAround wird durch den Ticker in regelmäßigen Abständen aufgerufen
Bei jedem Aufruf wird für jede in personenFeld hinterlegt figur eine Zufallzahl bestimmt
Liegt diese Zahl im Bereich von 0 bis 3 wird die Person bewegt andernfalls passiert nichts
Die Wahrscheinlichkeit, dass sich eine Person bewegt kann durch den Bereich aus dem die Zufallszahl ermittelt wird beinflusst werden
- Je größer die Zahl, dest kleiner die Wahrscheinlichkeit, dass sich die Person bewegt
- Je kleiner die Zahl, dest größer die Wahrscheinlichkeit, dass sich die Person bewegt
Achtung: Die kleinsmögliche Zahl ist 4 (Bewegungswahrscheinlichkeit = 100%).
Wenn die Spielfigur auf das Entity tritt, wird diese Methode ausgeführt
(Genaue Reaktion in den einezlnen Unterklassen, wie Blumentopf, die von Entity erben, implementieren!)
Zeichnet den Pfeil neu (Je nach Stand der Variable pfeilpos), sodass er der aktuell ausgewählten Zeile entspricht
Für Interaktion aus Spiel nicht notwendig!
personenLoeschen loescht alle in einem Raum vorhandenen Personen
Es werden alle in personenFeld geespeicherten String-Variablen aufgerufen und dann entsprechen geloescht
personErstellen: Erstellt eine Figur für die Übergebenen Parameter
name wird mit den Namen aus der Liste verglichen und die jewilige Personen wird erzeugt, in personenFeld gespeichert und grafisch eingebunden
Method pfeilHoch
Die Texte werden solange miteinander verglichen bis sie übereinstimmen
Danach wird der um eine Position höhere (bzw. um einen Index niedrigere) Text ausgewählt
Method pfeilRunter
Enstspricht pfeilHoch mit umgekehrten Vorzeichen
Die Texte werden solange miteinander verglichen bis sie übereinstimmen
Danach wird der um eine Position niedrigere (bzw. um einen Index höhere) Text ausgewählt
Damit ein Entity-Objekt auf Methoden der Klasse Spiel zurückgreifen kann, muss Spiel - das normalerweise
nur als statische Variable Spiel zur Verfügung steht - als nicht-statische Variable gespeichert werden.
Method songApspielen
Es wird mit dem Zufallsgenerator eine Songnummer bestimmt und der ausgewaehlte Song wird abgespielt
Bevor die Zahl durch den Zufallsgenerator bestimmt wird, wird ueberprueft ob eine ander Zahl als die vorherige ermittelt wurde, da sonst kein Sound abgespielt wird
spielstandauswahlAus
loescht die nicht mehr benoetigten Texte
chosenText, spielstaende[] und spielstandVorhanden[] werden nicht geloescht, da sie fuer ladebox() benoetigt werden
tasteGedrueckt funktioniert wie tasteReagierbar enhaelt aber einen mit 50ms getakteten Ticker der bei gedrueckter Taste aufgerufen wird
Ein zaehler laeuft mit um die Aufrufe auf 250 ms zu begrenzen
tasteLosgelassen
zaehler aus tasteGedrueckt wird für den nächsten Tastenanschlag zurückgesetzt
Fals bei spielstatus "inGame" der spieler gesteuert wird, wird seine Laufanimation beendet
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