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#
-
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 -
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.
-
Nombra el sprite. Añade una línea después de
SpritePosition, y pulsa Play otra vez:SpriteName(sprite, "jugador")jugadoraparece en el árbol. Nada más cambió en pantalla: nombrar no crea, mueve ni dibuja nada. Publica. -
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.
-
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") -
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á ensprite; 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#
| Comando | Qué 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á#
- El resto del dialecto: el lenguaje BASIC.
- Cada comando de nombrado con sus parámetros: la familia Studio.