Title: miniworlds: Gegner-Klasse

Eigene Klassen eignen sich nicht nur für Spielerfiguren. Du kannst auch
Gegner, Sammelobjekte oder Hindernisse als Klassen modellieren.

In diesem Beispiel hat jeder Gegner eine eigene Geschwindigkeit und bewegt
sich automatisch hin und her.

import miniworlds world = miniworlds.World(500, 300) world.add_background((230, 240, 250)) class Gegner(miniworlds.Actor): def on_setup(self): self.color = (220, 80, 80) self.size = (34, 34) self.speed = 4 def act(self): self.x = self.x + self.speed if self.x > 470 or self.x < 30: self.speed = -self.speed gegner1 = Gegner((80, 110)) gegner2 = Gegner((260, 190)) gegner2.speed = 7 gegner2.color = (160, 90, 210) world.run()

Die Methode `act()` wird immer wieder aufgerufen. Dadurch kann ein Objekt
sich selbst bewegen. `self.speed` gehört jeweils zu genau einem Gegner.

### Spieler und Gegner kombinieren

Jetzt kommt eine steuerbare Figur dazu:

import miniworlds world = miniworlds.World(500, 300) world.add_background((230, 240, 250)) class Spieler(miniworlds.Actor): def on_setup(self): self.color = (70, 135, 220) self.size = (34, 34) self.speed = 12 def on_key_down_right(self): self.x = self.x + self.speed def on_key_down_left(self): self.x = self.x - self.speed def on_key_down_up(self): self.y = self.y - self.speed def on_key_down_down(self): self.y = self.y + self.speed class Gegner(miniworlds.Actor): def on_setup(self): self.color = (220, 80, 80) self.size = (34, 34) self.speed = 5 def act(self): self.x = self.x + self.speed if self.x > 470 or self.x < 30: self.speed = -self.speed spieler = Spieler((70, 150)) gegner = Gegner((260, 150)) @spieler.register def on_detecting(self, other): if other == gegner: self.x = 70 self.y = 150 world.run()

Der Spieler und der Gegner sind unterschiedliche Klassen. Jede Klasse
beschreibt nur das Verhalten, das zu ihrer Objektart gehört.

### Aufgabe

Erweitere das Beispiel:

- Erzeuge einen zweiten Gegner
- Gib dem zweiten Gegner eine andere Geschwindigkeit
- Setze den Spieler zurück, wenn er einen der Gegner berührt

Tipp: Speichere beide Gegner in einer Liste und prüfe mit `if other in gegner:`.