Nachrichten#

Nachrichten senden#

Mit send_message(self, message) kannst du eine Nachricht an alle Objekte in deiner Welt senden. Diese Nachrichten können von anderen Objekten empfangen und verarbeitet werden, wenn sie auf das entsprechende Ereignis hören.

Beispiel:#

In diesem Beispiel sendet player 1 eine Nachricht, dass er sich bewegt hat.

@player1.register
def on_key_down(self, keys):
    if 'a' in keys:
        self.move()  # Bewegt player1
        self.send_message("p1moved")  # Sendet Nachricht "p1moved" an alle

Nachrichten empfangen#

Mit dem decorator register_message("message") kannst du eine Nachricht registrieren:

Beispiel:#

Im folgenden Beispiel wird die Nachricht, die player1 versendet, von player2 empfangen. Er bewegt sich immer dann in die Richtung von player1, wenn dieser sich bewegt

@player1.register
def on_key_down(self, keys):
    if 'a' in keys:
        self.move()  # Bewegt player1
        self.send_message("p1moved")  # Sendet Nachricht "p1moved" an alle

@player2.register_message("p1moved") # Hier wird registriert, dass die folgende Funktion auf die Message "p1moved" reagieren soll.
def follow(self, data): # Der Funktionsname ist hier egal
    self.move_towards(player1)  # player2 bewegt sich in Richtung 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 player1 sich bewegt, empfängt player2 die Nachricht und bewegt sich in Richtung von player1.