All tutorials

Nombra lo que tu programa crea

Beginner 10 min engine

Un programa puede construir cien objetos y no mostrar ninguno en el Scene Graph. Nombrar es el gesto que hace aparecer uno, y funciona con sprites, textos, objetos 3D, luces y partículas.

Lo que vas a aprender#

Vas a escribir un pequeño programa en BASIC, comprobar que el Scene Graph permanece vacío aunque claramente funciona, y luego hacer que cada objeto aparezca nombrándolo. Al final sabrás por qué el árbol oculta la mayor parte de lo que construye un programa, y cómo elegir qué muestra.

Antes de empezar#

  • Engine es un módulo patrocinado. Inkwell, Vectra y PDF Studio son los tres gratuitos.
  • No se necesita ningún tutorial previo. Todo está en un solo script.
  • Mantén abierto el panel Scene Graph, junto al viewport. Es el objetivo de todo el ejercicio.

Pasos#

  1. Abre Engine, empieza una escena vacía, y abre el editor de scripts. Pega esto y pulsa Play:

    image = LoadImage("hero.png")
    sprite = CreateSprite(image)
    SpritePosition(sprite, 100.0, 120.0)
    CreatePointLight(1, 0.0, 5.0, 0.0, 10.0, 255, 255, 255)
    DO
      Sync()
    LOOP
    
  2. Mira el Scene Graph. El sprite está en pantalla, la luz está encendida, y el árbol no muestra nada. Esto no es un error, y es toda la lección.

    Consejo: el panel muestra un contador de objetos sin nombre. Ese número es la producción de tu programa que el árbol dejó deliberadamente fuera de la lista.

  3. Nombra el sprite. Añade una línea después de SpritePosition, y pulsa Play otra vez:

    SpriteName(sprite, "jugador")
    

    jugador aparece en el árbol. Nada más cambió en pantalla: nombrar no crea, mueve ni dibuja nada. Publica.

  4. Nombra también la luz, con el comando que llegó junto con esta idea:

    LightName(1, "sol")
    

    Ahora hay dos entradas. Haz clic en una: el inspector la sigue, exactamente como lo haría con un objeto que hubieras colocado a mano.

  5. Añade partículas y nómbralas, para ver que la regla no es solo cosa de los sprites:

    CreateParticles(1, 200.0, 200.0)
    ParticlesName(1, "humo")
    
  6. Ahora quita las tres líneas de nombrado y pulsa Play. La escena es idéntica, el árbol vuelve a estar vacío, y el contador de sin nombre vuelve a tres.

    Advertencia: un nombre no es un identificador. SpriteName(sprite, "jugador") etiqueta el sprite cuyo identificador está en sprite; no te permite encontrarlo después por ese nombre. El identificador sigue siendo tu referencia.

Resultado#

Puedes decidir qué muestra tu programa. Un objeto, una luz y un emisor aparecen bajo los nombres que elegiste; los cientos de objetos técnicos que construye un programa real quedan fuera de la vista.

Por qué existe la regla#

Un programa BASIC clásico crea objetos constantemente: un sprite por cada bala, un texto por cada dígito de puntuación, una imagen por cada baldosa. Listarlos todos haría que el Scene Graph fuera ilegible en cuestión de segundos, y los tres objetos que realmente te importan se perderían entre el ruido.

Por eso el árbol no muestra todo adivinando qué ocultar. Muestra lo que nombraste, y cuenta el resto para que nada desaparezca en silencio. El filtro es tuyo, no del motor.

Qué objetos se pueden nombrar#

ComandoQué nombra
SpriteName(id, nombre)Un sprite
TextName(id, nombre)Un objeto de texto
ObjectName(id, nombre)Un objeto 3D
LightName(id, nombre)Una luz puntual o direccional
ParticlesName(id, nombre)Un emisor de partículas, 2D o 3D

Los sonidos, las imágenes, los memblocks y las fuentes no tienen ninguna línea en el Scene Graph: son recursos, no objetos de escena, y nombrarlos no mostraría nada en ningún sitio.

Para ir más allá#