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

ParameterTypBeschreibung
entityEntityDas 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.