Benutzer:Moerdn/ sendMessage
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