O que você vai aprender#
Você vai escrever um pequeno programa em BASIC, ver o Scene Graph continuar vazio mesmo funcionando claramente, e depois fazer cada objeto aparecer nomeando-o. No final você vai saber por que a árvore esconde a maior parte do que um programa constrói, e como escolher o que ela mostra.
Antes de começar#
- Engine é um módulo apoiado. Inkwell, Vectra e PDF Studio são os três gratuitos.
- Nenhum tutorial anterior é necessário. Tudo abaixo cabe num único script.
- Deixe o painel Scene Graph aberto, ao lado da viewport. É o ponto inteiro do exercício.
Passos#
-
Abra o Engine, comece uma cena vazia, e abra o editor de scripts. Cole isto e aperte 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 -
Olhe o Scene Graph. O sprite está na tela, a luz está acesa, e a árvore não mostra nada. Isso não é um bug, e é a lição inteira.
Dica: o painel mostra uma contagem de objetos sem nome. Esse número é a produção do seu programa que a árvore deliberadamente deixou de fora.
-
Nomeie o sprite. Adicione uma linha depois de
SpritePosition, e aperte Play de novo:SpriteName(sprite, "jogador")jogadoraparece na árvore. Nada mais mudou na tela: nomear não cria, move ou desenha nada. Isso publica. -
Nomeie a luz também, com o comando que veio junto com essa ideia:
LightName(1, "sol")Duas entradas agora. Clique numa delas: o inspetor acompanha, exatamente como faria para um objeto que você tivesse posicionado na mão.
-
Adicione partículas e nomeie-as, para ver que a regra não é só sobre sprites:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "fumaça") -
Agora remova as três linhas de nomeação e aperte Play. A cena é idêntica, a árvore está vazia de novo, e a contagem de objetos sem nome volta para três.
Aviso: um nome não é um id.
SpriteName(sprite, "jogador")rotula o sprite cujo id está emsprite; isso não permite encontrá-lo depois por esse rótulo. O id continua sendo sua referência.
Resultado#
Você decide o que o seu programa mostra. Um prop, uma luz e um emissor aparecem sob os nomes que você escolheu; as centenas de objetos técnicos que um programa de verdade constrói ficam fora do caminho.
Por que a regra existe#
Um programa BASIC clássico cria objetos o tempo todo: um sprite por bala, um texto por dígito de pontuação, uma imagem por tile. Listar todos eles deixaria o Scene Graph ilegível em segundos, e os três objetos que realmente importam para você se perderiam no meio do ruído.
Por isso a árvore não mostra tudo escondendo o resto por adivinhação. Ela mostra o que você nomeou, e conta o resto para que nada desapareça em silêncio. O filtro é seu, não do motor.
Quais objetos podem ser nomeados#
| Comando | O que ele nomeia |
|---|---|
SpriteName(id, nome) | Um sprite |
TextName(id, nome) | Um objeto de texto |
ObjectName(id, nome) | Um objeto 3D |
LightName(id, nome) | Uma luz pontual ou direcional |
ParticlesName(id, nome) | Um emissor de partículas, 2D ou 3D |
Sons, imagens, memblocks e fontes não têm linha no Scene Graph: são recursos, não objetos de cena, e nomeá-los não mostraria nada em lugar nenhum.
Para ir além#
- O resto do dialeto: a linguagem BASIC.
- Cada comando de nomeação com seus parâmetros: a família Studio.