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ètre | Type | Description |
|---|---|---|
entity | Entity | L’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.