Benutzer:Moerdn/ sendMessage

Aus Wikibooks

sendMessage(subject, body, to, from)

Die Funktion erlaubt es, Nachrichten von einem Objekt an ein beliebiges anderes Objekt zu senden. Dadurch kann das verwenden des Message Actuators vermieden werden. Die letzen drei Parameter sind optional und schränken die möglichen Sender/Empfänger ein.

Parameterliste:

subject:
Alle Message Sensoren, die diesen String als subject verwenden, erhalten die Nachricht.
Typ String
body (Optional):
body stellt die eigentliche Nachricht dar.
Typ: String
to (Optional):
schränkt die Objekte, welche die Nachricht erhalten sollen, auf genau ein konkretes Objekt ein.
Typ: String
from (Optional):
Das Objekt, welches die Nachricht verschicken soll. Kann auch der owner des Scriptes sein.
Typ: String

Rückgabetyp:

None


Wird die Modulfunktion mit einem oder zwei Parameter aufgerufen, so stellt dieses eine Art Broadcast dar. Alle Objekte die auf das subject "starte_spiel" filtern, erhalten diese Nachricht.

# Beispiel 1.1. Nachricht als Broadcast

# ohne Nachrichtenteil
GameLogic.sendMessage("starte_spiel")

# mit Nachrichtenteil
GameLogic.sendMessage("starte_spiel", "Schwierigkeit = leicht")

# END 1.1.


Der dritte Parameter wählt das Objekt aus, an den die Nachricht versendet werden soll.

# Beispiel 1.2. Nachricht explizit an ein Objekt senden

spieler = {"name" : "Spieler1", "gesundheit" : 100, "geld" : 55.50 }

# Nachricht muss in String konvertiert werden
GameLogic.sendMessage("add_spieler", str(spieler), "SpielInit")

# END 1.2.


Der letzte Parameter gibt das Objekt an, das die Nachricht versendet. Wenn der Sender bekannt ist, lassen sich Callbacks auf der Empfängerseite realisieren.

# Beispiel 1.3. Nachricht von Objekt A an Objekt B senden

GameLogic.sendMessage("nachricht", "Hallo!", "A", "B")

# END 1.3.


Nachricht von Controller owner an anderes Objekt senden

# Beispiel 1.4. Nachricht von dem owner an Empfänger Objekt senden 

con = GameLogic.getCurrentController()
own = con.owner

empf = "A"
send = own.name
GameLogic.sendMessage("nachricht", "Hallo!", empf, send)

# END 1.4.


zurück zu Benutzer:Moerdn/ GameLogic