Amit meg fogsz tanulni#
Írsz egy kis BASIC programot, megfigyeled, hogy a Scene Graph üres marad, miközben a program egyértelműen működik, majd megjeleníted az egyes objektumokat azáltal, hogy nevet adsz nekik. A végére tudni fogod, miért rejti el a fa a program által épített dolgok nagy részét, és hogyan választhatod ki, mit mutasson meg.
Mielőtt elkezded#
- Az Engine egy támogatással megnyitható modul. Az Inkwell, a Vectra és a PDF Studio a három ingyenes.
- Nincs szükség előzetes oktatóanyagra. Az alábbiak mindegyike egyetlen szkript.
- Tartsd nyitva a Scene Graph panelt, a nézetablak mellett. Ez a gyakorlat lényege.
Lépések#
-
Nyisd meg az Engine-t, indíts egy üres jelenetet, és nyisd meg a szkriptszerkesztőt. Illeszd be ezt, és nyomd meg a Play gombot:
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 -
Nézd meg a Scene Graph-ot. A sprite a képernyőn van, a fény világít, és a fa semmit nem mutat. Ez nem hiba, és ez az egész lecke.
Tipp: a panel megjeleníti a nem elnevezett objektumok számát. Ez a szám a programod kimenete, amelyet a fa szándékosan nem sorolt fel.
-
Nevezd el a sprite-ot. Adj hozzá egy sort a
SpritePositionután, és nyomd meg újra a Play gombot:SpriteName(sprite, "játékos")A
játékosmegjelenik a fában. A képernyőn semmi más nem változott: a megnevezés nem hoz létre, nem mozgat és nem rajzol semmit. Publikál. -
Nevezd el a fényt is, azzal a paranccsal, amely ehhez az ötlethez tartozik:
LightName(1, "nap")Most már két bejegyzés van. Kattints az egyikre: az inspektor követi, pontosan úgy, ahogy egy kézzel elhelyezett objektumnál tenné.
-
Adj hozzá részecskéket, és nevezd el őket, hogy lásd, a szabály nem csak a sprite-okra vonatkozik:
CreateParticles(1, 200.0, 200.0) ParticlesName(1, "füst") -
Most távolítsd el a három elnevező sort, és nyomd meg a Play gombot. A jelenet ugyanaz, a fa ismét üres, és a nem elnevezettek száma visszaáll háromra.
Figyelmeztetés: egy név nem azonos egy id-vel. A
SpriteName(sprite, "játékos")felcímkézi azt a sprite-ot, amelynek id-je aspriteváltozóban van; ez nem teszi lehetővé, hogy később ezzel a címkével találd meg. Az id marad a fogantyúd.
Eredmény#
Te döntheted el, mit mutasson a programod. Egy prop, egy fény és egy emitter jelenik meg az általad választott nevek alatt; a technikai objektumok százai, amelyeket egy valódi program épít, nem lesznek útban.
Miért létezik ez a szabály#
Egy klasszikus BASIC program folyamatosan hoz létre objektumokat: egy sprite-ot lövedékenként, egy szöveget pontszám-számjegyenként, egy képet mezőnként. Ha mindet felsorolná, a Scene Graph másodperceken belül olvashatatlanná válna, és az a három objektum, ami valójában érdekel, elveszne a zajban.
A fa tehát nem mutat meg mindent, és nem is találgatással rejti el a többit. Azt mutatja, amit elneveztél, és megszámolja a többit, hogy semmi ne tűnjön el csendben. A szűrő a tiéd, nem a motoré.
Mely objektumok nevezhetők el#
| Parancs | Mit nevez el |
|---|---|
SpriteName(id, name) | Egy sprite-ot |
TextName(id, name) | Egy szövegobjektumot |
ObjectName(id, name) | Egy 3D objektumot |
LightName(id, name) | Egy pont- vagy irányfényt |
ParticlesName(id, name) | Egy részecske-emittert, 2D-ben vagy 3D-ben |
A hangoknak, a képeknek, a memblockoknak és a betűtípusoknak nincs saját soruk a Scene Graph-ban: ezek erőforrások, nem jelenetobjektumok, és az elnevezésük sehol nem jelenítene meg semmit.
Továbblépés#
- A nyelvjárás többi része: a BASIC nyelv.
- Minden elnevező parancs a paramétereivel: a Studio család.