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.