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ámetroTipoDescripción
entityEntityLa 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.