pyxen.world.destroy()
Destruye un Entity existente y lo elimina del mundo.
Esto elimina permanentemente la entidad y todos sus componentes.
Sintaxis
pyxen.world.destroy(entity)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
entity | Entity | La entidad a destruir. |
Devuelve
None
Qué ocurre al destruir una entidad
Llamar a destroy():
- Elimina la entidad del mundo
- Elimina todos los componentes adjuntos (Sprite, Sound, Music, GridMap, GridBody, etc.)
- Elimina las relaciones padre/hijo
- Libera su ID interno para reutilización (seguro por generación)
Después de la destrucción, la entidad ya no debe usarse.
Ejemplo
Destruir una entidad
enemy = pyxen.world.spawn(sprite=assets.enemy, x=40, y=12)
# Después...
pyxen.world.destroy(enemy)
Destruir desde la lógica del juego
if player.health <= 0:
pyxen.world.destroy(player)
Patrón común: eliminación temporizada
explosion = pyxen.world.spawn(sprite=assets.explosion, x=32, y=16)
if explosion_timer.finished():
pyxen.world.destroy(explosion)
Notas importantes
No reutilizar entidades destruidas
Una vez destruida:
pyxen.world.destroy(enemy)
enemy.x = 10 # Uso inválido
La entidad ya no es válida dentro del mundo.
Si necesitas una nueva, llama a spawn() de nuevo.
Comportamiento padre / hijo
Si la entidad destruida:
- Tiene hijos, se eliminan automáticamente
- Tiene un padre, se elimina de la jerarquía
La destrucción es recursiva y segura.
Seguridad de tipos
Si se pasa un objeto que no es Entity:
pyxen.world.destroy("not an entity")
Se producirá un error en tiempo de ejecución.
Siempre pasa un Entity válido.
Filosofía de diseño
En Pyxen:
- Las entidades son identificadores ligeros
- Los componentes definen el comportamiento
- Destruir elimina la composición completa
Esto mantiene la memoria predecible y compatible con ECS.