Class Controller
public final class Controller extends Hovlet
Zu den Funktionen des Controllers gehören:
Für eine genauere Beschreibung der Funktionen des Controllers sei auf das Hoverball Manual verwiesen.
Weiterhin hat der Controller die wichtige Aufgabe, das Graphical Debugging der Java-Units, die bei ihm mit dem Befehl debug(...) registriert wurden, anzuzeigen. Dieses kann dann über das Menu Debug des Controllers für die einzelnen Units ausgewählt oder durch Click auf die Hovlet-Icons der Units ein- und ausgeblendet werden. Siehe hierzu auch hoverball.debug.Debug.
Auf dem Screen ist der Human-KeyListener installiert. Alle Human Units (in derselben Java-Instanz) sind also steuerbar, wenn der Screen aktiv ist. Die Farben der Sphäre und des Hintergrunds können mit den Methoden setForeground(...) und setBackground(...) des Screens geändert werden.
Der Controller ist als integriertes Hovlet oder als Stand-Alone (Root-Hovlet) ausführbar, jedoch kann kein Sub-Hovlet an den Controller angeknüpft werden.
Die Klasse Controller kann auch als Application gestartet werden:
java hoverball.Controller [host][:port][#hash]
-
Field Summary
Fields Modifier and Type Field Description javax.swing.JInternalFrame
frame
Frame des Controllers (falls Stand-Alone)javax.swing.JInternalFrame
viewer
Frame des Hoverball-Screens.Fields inherited from class hoverball.Hovlet
background, BANNER, foreground, hovlets, icon, main, menubar, parent, title
-
Constructor Summary
Constructors Constructor Description Controller()
öffnet einen Controller.Controller(boolean shortcuts)
öffnet einen Controller und ermöglicht oder verbietet die Kontroll-Tastaturkürzel im Screen. -
Method Summary
Modifier and Type Method Description void
browse(javax.swing.JInternalFrame frame)
[Implementierung]void
close()
Schließt den Controller.boolean
complete()
Gibt zurück, ob das Spiel beendet ist ("Complete").protected boolean
connecting(java.lang.String server)
[Implementierung]void
debug(Team team)
Entfernt alle Units eines Teams aus der Registrierung für Graphical Debugging.void
debug(Team team, boolean debug)
Registriert alle Units eines Teams für Graphical Debugging.void
debug(Unit unit)
Entfernt eine Unit aus der Registrierung für Graphical Debugging.void
debug(Unit unit, boolean debug)
Registriert eine Unit für Graphical Debugging.protected void
disconnecting()
[Implementierung]void
follow(Team team, int n)
Verfolgt einen Ball auf dem Screen (Follow-Mode).void
follow(Unit unit)
Verfolgt eine Unit auf dem Screen (Follow-Mode).boolean
fullscreen()
Gibt zurück, ob Vollbildschirm ist.void
fullscreen(boolean fullscreen)
Setzt Vollbildschirm an oder aus.java.lang.String
get(java.lang.String key)
Liefert den Wert einer Simulator-Variablen.static void
main(java.lang.String[] args)
Startet den Controller (Application!).double
option(java.lang.String key)
Liefert den Wert einer Hoverball-Option.void
set(java.lang.String key, double value)
Setzt eine Simulator-Variable.void
set(java.lang.String key, java.lang.String value)
Setzt eine Simulator-Variable.int
state()
Gibt den Zustand des verbundenen Simulators zurück.void
state(int state)
Ändert den Zustand des verbundenen Simulators.void
style(boolean antialiasing)
Setzt den Anzeigestil.double
time()
Gibt den Zeit des Spiels im Simulators zurück.void
view(int memory)
Versendet einen View aus dem Speicher.void
view(int memory, java.lang.String pucks)
Speichert einen View.void
zoom(double zoom)
Zoomt den Screen.
-
Field Details
-
Constructor Details
-
Controller
public Controller()öffnet einen Controller. -
Controller
public Controller(boolean shortcuts)öffnet einen Controller und ermöglicht oder verbietet die Kontroll-Tastaturkürzel im Screen.
-
-
Method Details
-
main
public static void main(java.lang.String[] args)Startet den Controller (Application!). -
close
public void close()Schließt den Controller. -
browse
public void browse(javax.swing.JInternalFrame frame)[Implementierung] -
style
public void style(boolean antialiasing)Setzt den Anzeigestil.- Parameters:
antialiasing
- true für Antialiasing
-
fullscreen
public void fullscreen(boolean fullscreen)Setzt Vollbildschirm an oder aus.- Parameters:
fullscreen
- true für Vollbildschirm
-
fullscreen
public boolean fullscreen()Gibt zurück, ob Vollbildschirm ist.- Returns:
- true bei Vollbildschirm
-
view
public void view(int memory, java.lang.String pucks)Speichert einen View.Ein View enthält alle Informationen einer Momentaufnahme eines Hoverball-Spiels. Die Objekte werden im View allerdings nur durch die
(what t n)
-Kennung charakterisiert. Bei veränderten Channels bekommt der View also eine andere Bedeutung. Die Nutzung dieser Methode ist demnach nur dann sinnvoll, wenn gewährleistet ist, dass sich jedesmal dieselben Units in derselben Reihenfolge mit dem Simulator verbinden. Dies ist etwa in einer Hoverball-Session auf einem lokalen Rechner der Fall.Als String ist der Puck-Teil einer
(view...)
-Nachricht aus dem Control Client to Server-Protokoll zu übergeben. Es ist also nicht möglich, mit diesem Befehl die Zeit oder den Punktestand zu definieren.Tipp: Ein solcher String kann leicht zur Laufzeit des Spiels erzeugt werden: Das Menu View > Copy to Clipboard kopiert den erforderlichen String für den aktuellen View ins System-Clipboard, so dass dieser anschließend leicht in den Programm-Code eingefügt werden kann.
Mit
null
wird der View in dem Speicherplatz gelöscht.- Parameters:
memory
- Speicherplatzpucks
- Puck-Teil der(view...)
-Nachricht
-
view
public void view(int memory)Versendet einen View aus dem Speicher.- Parameters:
memory
- Speicherplatz
-
follow
Verfolgt eine Unit auf dem Screen (Follow-Mode).Hat
unit
den Wertnull
, wird der Follow-Mode deaktiviert.- Parameters:
unit
- Unit
-
follow
Verfolgt einen Ball auf dem Screen (Follow-Mode).Hat
team
den Wertnull
, so wird ein Shot-Ball, ansonsten ein Team-Ball des angegebenen Teams verfolgt.Die Ball-Nummern werden von 1 hochgezählt.
- Parameters:
team
- Team des Balls (null
= Shot-Ball)n
- Ball-Nummer
-
zoom
public void zoom(double zoom)Zoomt den Screen.- Parameters:
zoom
- Zoom-Faktor.
-
debug
Registriert alle Units eines Teams für Graphical Debugging.Ist
debug
gleichtrue
, so ist die Grafik-Ausgabe dieser Unit von Beginn an eingeschaltet.- Parameters:
team
- Teamdebug
- Grafik-Ausgabe ein?
-
debug
Entfernt alle Units eines Teams aus der Registrierung für Graphical Debugging.- Parameters:
team
- Team
-
debug
Registriert eine Unit für Graphical Debugging.Ist
debug
gleichtrue
, so ist die Grafik-Ausgabe dieser Unit von Beginn an eingeschaltet.- Parameters:
unit
- Unitdebug
- Grafik-Ausgabe ein?
-
debug
Entfernt eine Unit aus der Registrierung für Graphical Debugging.- Parameters:
unit
- Unit
-
set
public void set(java.lang.String key, java.lang.String value)Setzt eine Simulator-Variable.Mit
value
gleichnull
kann die Variable gelöscht werden.- Parameters:
key
- Simulator-Variablevalue
- Wert
-
set
public void set(java.lang.String key, double value)Setzt eine Simulator-Variable.Der
double
-Wert wird in einenString
konvertiert.- Parameters:
key
- Simulator-Variablevalue
- Wert
-
get
public java.lang.String get(java.lang.String key)Liefert den Wert einer Simulator-Variablen.- Parameters:
key
- Simulator-Variable- Returns:
- den Wert
-
option
public double option(java.lang.String key)Liefert den Wert einer Hoverball-Option.Falls es sich bei
key
um eine Simulator-Variable handelt, die keine Option ist, liefert die Funktion den Wert 0.- Parameters:
key
- Hoverball-Option- Returns:
- den Wert
-
state
public void state(int state)Ändert den Zustand des verbundenen Simulators.- Parameters:
state
- neuer Zustand
-
state
public int state()Gibt den Zustand des verbundenen Simulators zurück.- Returns:
- Zustand
-
time
public double time()Gibt den Zeit des Spiels im Simulators zurück.- Returns:
- Zeit
-
complete
public boolean complete()Gibt zurück, ob das Spiel beendet ist ("Complete").- Returns:
- beendet
-
connecting
protected final boolean connecting(java.lang.String server)[Implementierung]- Overrides:
connecting
in classHovlet
- Parameters:
server
- Netzwerk-Adresse- Returns:
true
, falls Verbindung erfolgte
-
disconnecting
protected final void disconnecting()[Implementierung]- Overrides:
disconnecting
in classHovlet
-