pyxen.world.destroy()

Détruit une Entity existante et la supprime du monde.

Cela supprime définitivement l’entité et tous ses composants.


Syntaxe

pyxen.world.destroy(entity)

Paramètres

ParamètreTypeDescription
entityEntityL’entité à détruire.

Retour

None


Ce qui se passe quand vous détruisez une entité

L’appel à destroy() va :

  • Supprimer l’entité du monde
  • Supprimer tous les composants attachés (Sprite, Sound, Music, GridMap, GridBody, etc.)
  • Supprimer les relations parent/enfant
  • Libérer son identifiant interne pour réutilisation (protégé par génération)

Après la destruction, l’entité ne doit plus être utilisée.


Exemple

Détruire une entité

enemy = pyxen.world.spawn(sprite=assets.enemy, x=40, y=12)

# Plus tard…
pyxen.world.destroy(enemy)

Destruction depuis la logique de jeu

if player.health <= 0:
    pyxen.world.destroy(player)

Pattern courant : Suppression temporisée

explosion = pyxen.world.spawn(sprite=assets.explosion, x=32, y=16)

if explosion_timer.finished():
    pyxen.world.destroy(explosion)

Notes importantes

Ne réutilisez pas les entités détruites

Une fois détruites :

pyxen.world.destroy(enemy)

enemy.x = 10  # ❌ Invalid usage

L’entité n’est plus valide dans le monde.

Si vous en avez besoin d’une nouvelle — appelez spawn() à nouveau.


Comportement Parent / Enfant

Si l’entité détruite :

  • A des enfants → ils sont automatiquement supprimés
  • A un parent → elle est retirée de la hiérarchie

La destruction est récursive et sûre.


Sécurité de type

Si un objet qui n’est pas une Entity est passé :

pyxen.world.destroy("not an entity")

Une erreur à l’exécution se produira.

Passez toujours une Entity valide.


Philosophie de conception

Dans Pyxen :

  • Les entités sont des handles légers
  • Les composants définissent le comportement
  • La destruction supprime la composition complète

Cela maintient la mémoire prévisible et compatible avec l’ECS.