Ce vei învăța#
Vei scrie un mic program BASIC, vei vedea Scene Graph rămânând gol în timp ce programul funcționează clar, apoi vei face fiecare obiect să apară denumindu-l. La final vei ști de ce arborele ascunde cea mai mare parte din ce construiește un program și cum să alegi ce anume arată.
Înainte să începi#
- Engine este un modul care se deblochează prin susținere financiară. Inkwell, Vectra și PDF Studio sunt cele trei module gratuite.
- Nu este nevoie de niciun tutorial anterior. Tot ce urmează este un singur script.
- Ține panoul Scene Graph deschis, lângă viewport. Acesta este scopul exercițiului.
Pași#
-
Deschide Engine, pornește o scenă goală și deschide editorul de script. Lipește acest cod și apasă 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 -
Uită-te la Scene Graph. Sprite-ul este pe ecran, lumina este aprinsă, iar arborele nu arată nimic. Nu este un bug, și este toată lecția.
Sfat: panoul arată un număr de obiecte nedenumite. Acel număr este rezultatul programului tău pe care arborele a ales deliberat să nu îl listeze.
-
Denumește sprite-ul. Adaugă o linie după
SpritePosition, și apasă din nou Play:SpriteName(sprite, "player")playerapare în arbore. Nimic altceva nu s-a schimbat pe ecran: denumirea nu creează, nu mută și nu desenează nimic. Ea publică. -
Denumește și lumina, cu comanda care a venit odată cu această idee:
LightName(1, "sun")Acum sunt două intrări. Dă clic pe una: inspectorul o urmează, exact cum ar face-o pentru un obiect plasat manual.
-
Adaugă particule și denumește-le, ca să vezi că regula nu se referă doar la sprite-uri:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "smoke") -
Acum șterge cele trei linii de denumire și apasă Play. Scena este identică, arborele este din nou gol, iar numărul de nedenumite revine la trei.
Atenție: un nume nu este un id.
SpriteName(sprite, "player")etichetează sprite-ul al cărui id se află însprite; nu îți permite să îl regăsești mai târziu după acea etichetă. Id-ul rămâne mânerul tău de control.
Rezultat#
Poți decide ce arată programul tău. Un prop, o lumină și un emițător apar sub numele pe care le-ai ales; sutele de obiecte tehnice pe care le construiește un program real rămân din calea ta.
De ce există această regulă#
Un program BASIC clasic creează obiecte constant: un sprite per glonț, un text per cifră de scor, o imagine per tile. Listarea tuturor ar face Scene Graph ilizibil în câteva secunde, iar cele trei obiecte care chiar te interesează s-ar pierde în zgomot.
Așa că arborele nu arată totul și nu ascunde restul ghicind. Arată ce ai denumit, și numără restul, astfel încât nimic să nu dispară în tăcere. Filtrul este al tău, nu al motorului.
Ce obiecte pot fi denumite#
| Comandă | Ce denumește |
|---|---|
SpriteName(id, name) | Un sprite |
TextName(id, name) | Un obiect de tip text |
ObjectName(id, name) | Un obiect 3D |
LightName(id, name) | O lumină punctiformă sau direcțională |
ParticlesName(id, name) | Un emițător de particule, 2D sau 3D |
Sunetele, imaginile, memblock-urile și fonturile nu au o linie în Scene Graph: sunt resurse, nu obiecte de scenă, iar denumirea lor nu ar arăta nimic nicăieri.
Mergi mai departe#
- Restul dialectului: limbajul BASIC.
- Fiecare comandă de denumire cu parametrii ei: familia Studio.