pyxen.world.destroy()
Zerstöre ein existierendes Entity und entferne es aus der Welt.
Dies löscht das Entity und alle seine Komponenten dauerhaft.
Syntax
pyxen.world.destroy(entity)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
entity | Entity | Das zu zerstörende Entity. |
Rückgabe
None
Was beim Zerstören eines Entity passiert
Der Aufruf von destroy() wird:
- Das Entity aus der Welt entfernen
- Alle angehängten Komponenten entfernen (Sprite, Sound, Music, GridMap, GridBody usw.)
- Eltern/Kind-Beziehungen entfernen
- Die interne ID zur Wiederverwendung freigeben (generationssicher)
Nach der Zerstörung sollte das Entity nicht mehr verwendet werden.
Beispiel
Ein Entity zerstören
enemy = pyxen.world.spawn(sprite=assets.enemy, x=40, y=12)
# Später…
pyxen.world.destroy(enemy)
Zerstörung in der Spiellogik
if player.health <= 0:
pyxen.world.destroy(player)
Häufiges Muster: Zeitgesteuerte Entfernung
explosion = pyxen.world.spawn(sprite=assets.explosion, x=32, y=16)
if explosion_timer.finished():
pyxen.world.destroy(explosion)
Wichtige Hinweise
Zerstörte Entities nicht wiederverwenden
Nach der Zerstörung:
pyxen.world.destroy(enemy)
enemy.x = 10 # Ungültige Verwendung
Das Entity ist nicht mehr gültig in der Welt.
Wenn du ein neues brauchst — rufe spawn() erneut auf.
Eltern/Kind-Verhalten
Wenn das zerstörte Entity:
- Kinder hat → sie werden automatisch entfernt
- Ein Elternteil hat → es wird aus der Hierarchie entfernt
Zerstörung ist rekursiv und sicher.
Typsicherheit
Wenn ein Nicht-Entity-Objekt übergeben wird:
pyxen.world.destroy("not an entity")
Tritt ein Laufzeitfehler auf.
Übergib immer ein gültiges Entity.
Design-Philosophie
In Pyxen:
- Entities sind leichtgewichtige Handles
- Komponenten definieren Verhalten
- Zerstören entfernt die gesamte Komposition
Das hält den Speicher vorhersagbar und ECS-freundlich.