Nachrichten#
Nachrichten senden#
Mit send_message(self, message)
kannst du eine Nachricht an alle Objekte in deiner World senden. Diese Nachrichten können von anderen Objekten empfangen und verarbeitet werden, wenn sie auf dieses bestimmte Event hören.
Beispiel:#
In diesem Beispiel sendet player1 eine Nachricht, sobald er sich bewegt:
@player1.register
def on_key_down(self, keys):
if 'a' in keys:
self.move() # Moves player1
self.send_message("p1moved") # Sends message "p1moved" to all
Nachrichten empfangen#
Du kannst einen Handler für eine Nachricht mit dem Dekorator @register_message("message")
registrieren:
Beispiel:#
Im folgenden Beispiel wird die Nachricht, die player1 sendet, von player2 empfangen. Player2 bewegt sich dann in Richtung von player1, sobald sich player1 bewegt.
@player1.register
def on_key_down(self, keys):
if 'a' in keys:
self.move() # Moves player1
self.send_message("p1moved") # Sends message "p1moved" to all
@player2.register_message("p1moved") # Registers a handler for the "p1moved" message
def follow(self, data): # The function name doesn't matter
self.move_towards(player1) # player2 moves toward player1
Erklärung:#
In diesem Beispiel sendet player1 die Nachricht
"p1moved"
, wenn die Taste A gedrückt wird.player2 hat eine Methode registriert, die auf diese Nachricht hört. Sobald sich player1 bewegt, empfängt player2 die Nachricht und bewegt sich in Richtung player1.