Cosa imparerai#
Scriverai un piccolo programma BASIC, osserverai la Scene Graph restare vuota mentre il programma funziona chiaramente, e poi farai apparire ogni oggetto nominandolo. Alla fine saprai perché l'albero nasconde la maggior parte di ciò che un programma costruisce, e come scegliere cosa mostrare.
Prima di iniziare#
- Engine è un modulo sostenuto. Inkwell, Vectra e PDF Studio sono i tre gratuiti.
- Non serve nessun tutorial precedente. Tutto quello che segue è un unico script.
- Tieni aperto il pannello Scene Graph, accanto al viewport. È il punto centrale dell'esercizio.
Passaggi#
-
Apri Engine, avvia una scena vuota, e apri l'editor di script. Incolla questo e premi 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 -
Guarda la Scene Graph. Lo sprite è a schermo, la luce è accesa, e l'albero non mostra nulla. Non è un bug, ed è l'intera lezione.
Suggerimento: il pannello mostra un conteggio degli oggetti senza nome. Quel numero è l'output del tuo programma che l'albero deliberatamente non ha elencato.
-
Nomina lo sprite. Aggiungi una riga dopo
SpritePosition, e premi Play di nuovo:SpriteName(sprite, "player")playerappare nell'albero. Nulla è cambiato a schermo: nominare non crea, sposta o disegna nulla. Pubblica. -
Nomina anche la luce, con il comando arrivato insieme a questa idea:
LightName(1, "sun")Ora ci sono due voci. Clicca su una: l'inspector la segue, esattamente come farebbe per un oggetto che avessi posizionato a mano.
-
Aggiungi delle particelle e nominale, così vedi che la regola non riguarda solo gli sprite:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "smoke") -
Ora rimuovi le tre righe di denominazione e premi Play. La scena è identica, l'albero è di nuovo vuoto, e il conteggio dei senza nome torna a tre.
Attenzione: un nome non è un id.
SpriteName(sprite, "player")etichetta lo sprite il cui id sta insprite; non ti permette di ritrovarlo in seguito tramite quell'etichetta. L'id resta il tuo riferimento.
Risultato#
Puoi decidere cosa mostra il tuo programma. Un prop, una luce e un emettitore appaiono sotto i nomi che hai scelto; le centinaia di oggetti tecnici che un programma reale costruisce restano fuori dai piedi.
Perché questa regola esiste#
Un classico programma BASIC crea oggetti in continuazione: uno sprite per proiettile, un testo per cifra del punteggio, un'immagine per tile. Elencarli tutti renderebbe la Scene Graph illeggibile in pochi secondi, e i tre oggetti a cui tieni davvero si perderebbero nel rumore.
Quindi l'albero non mostra tutto e non nasconde il resto indovinando. Mostra ciò che hai nominato, e conta il resto in modo che nulla sparisca in silenzio. Il filtro è tuo, non del motore.
Quali oggetti possono essere nominati#
| Comando | Cosa nomina |
|---|---|
SpriteName(id, name) | Uno sprite |
TextName(id, name) | Un oggetto di testo |
ObjectName(id, name) | Un oggetto 3D |
LightName(id, name) | Una luce puntiforme o direzionale |
ParticlesName(id, name) | Un emettitore di particelle, 2D o 3D |
Suoni, immagini, memblock e font non hanno una riga nella Scene Graph: sono risorse, non oggetti di scena, e nominarli non mostrerebbe nulla da nessuna parte.
Per approfondire#
- Il resto del dialetto: il linguaggio BASIC.
- Ogni comando di denominazione con i suoi parametri: la famiglia Studio.