Hvad du vil lære#
Du vil skrive et lille BASIC-program, se Scene Graph forblive tomt, mens det tydeligvis virker, og derefter få hvert objekt til at dukke op ved at navngive det. Til sidst ved du, hvorfor træet skjuler det meste af det, et program bygger, og hvordan du vælger, hvad det viser.
Før du begynder#
- Engine er et modul, der kræver støtte. Inkwell, Vectra og PDF Studio er de tre gratis.
- Intet forudgående tutorial nødvendigt. Alt nedenfor er ét enkelt script.
- Hold panelet Scene Graph åbent, ved siden af viewporten. Det er hele pointen med øvelsen.
Trin#
-
Åbn Engine, start en tom scene, og åbn scripteditoren. Indsæt dette, og tryk på 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 -
Kig på Scene Graph. Spritet er på skærmen, lyset er tændt, og træet viser ingenting. Det er ikke en fejl, og det er hele lektionen.
Tip: panelet viser et antal unavngivne objekter. Det tal er dit programs output, som træet bevidst ikke har opført.
-
Navngiv spritet. Tilføj én linje efter
SpritePosition, og tryk Play igen:SpriteName(sprite, "spiller")spillerdukker op i træet. Der er ikke ændret andet på skærmen: navngivning skaber, flytter eller tegner ikke noget. Det offentliggør. -
Navngiv også lyset, med den kommando, der hører til denne idé:
LightName(1, "sol")Nu er der to poster. Klik på én: inspektoren følger med, nøjagtigt som den ville for et objekt, du havde placeret i hånden.
-
Tilføj partikler, og navngiv dem, så du kan se, at reglen ikke kun handler om sprites:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "røg") -
Fjern nu de tre navngivningslinjer, og tryk på Play. Scenen er identisk, træet er tomt igen, og antallet af unavngivne objekter er tilbage på tre.
Advarsel: et navn er ikke et id.
SpriteName(sprite, "spiller")mærker spritet, hvis id står isprite; det giver dig ikke mulighed for at finde det senere ud fra den mærkat. Id'et forbliver dit håndtag.
Resultat#
Du kan bestemme, hvad dit program viser. En prop, et lys og en emitter dukker op under de navne, du valgte; de hundredvis af tekniske objekter, et rigtigt program bygger, forbliver ude af vejen.
Hvorfor reglen findes#
Et klassisk BASIC-program skaber konstant objekter: et sprite pr. projektil, en tekst pr. pointciffer, et billede pr. tile. At opføre dem alle ville gøre Scene Graph ulæseligt i løbet af sekunder, og de tre objekter, du faktisk går op i, ville drukne i støjen.
Så træet viser ikke alt og skjuler resten ved at gætte. Det viser det, du har navngivet, og tæller resten, så intet forsvinder i stilhed. Filteret er dit, ikke motorens.
Hvilke objekter kan navngives#
| Kommando | Hvad den navngiver |
|---|---|
SpriteName(id, name) | Et sprite |
TextName(id, name) | Et tekstobjekt |
ObjectName(id, name) | Et 3D-objekt |
LightName(id, name) | Et punkt- eller retningsbestemt lys |
ParticlesName(id, name) | En partikel-emitter, 2D eller 3D |
Lyde, billeder, memblocks og skrifttyper har ingen linje i Scene Graph: de er ressourcer, ikke sceneobjekter, og at navngive dem ville ikke vise noget noget sted.
Kom videre#
- Resten af dialekten: BASIC-sproget.
- Hver navngivningskommando med dens parametre: Studio-familien.