Ebben a leckében egy táblás játék geometriáját készítem el. Maga a alaptábla egy egyszerű téglatest, ami kapott egy kockás textúrát.
Érdekessége a modellnek, hogy a bábukat lehet majd mozgatni az egérrel. [1] Erre való a MOZGATHATÓ utasítás. Bekapcsolása esetén minden egyszerű geometria amit alá írsz, elmozdítható lesz. Ezért érdemes a kód végére írni ezeket a sorokat. Sajnos csoportokat nem lehet így mozgatni. A mozgatás lényege, hogy a képernyő síkjában húzott egér koordinátáit átszámolja a rendszer 3D koordinátákra. Így egy húzással mindhárom koordináta változhat. A példában ez elég zavaró lenne, hogy néha az XZ sík alá, vagy fölé kerülne a bábú.
Ilyenkor a LIMIT utasítással korlátozható a test pozíciója. [2] Fontos, hogy egyéni neve legyen a testnek!
Maga az utasítás három részből áll: LIMIT.HELY.X, LIMIT.HELY.Y, LIMIT.HELY.Z
Ha valamelyik nincs megadva, akkor ott nem érvényesül a korlátozás. [3] Első paraméterként az objektum nevét kell megadni, majd a minimum, és maximum értékeket.
Sokszor van olyan feladat, ahol előre meghatározott rácspontokba kell objektumokat helyezni. Ilyen például egy sakktábla is. Ilyen feladatokra találtam ki a TÉRKÉP utasítást. Valójában három utasítás szükséges, mivel előzetesen definiálni kell néhány adatot, hogy meg lehessen rajzolni a térképet.
[1][2] Első lépésben megrajzoltam 2 db bábú figurát. Csoportba helyzetem mindkettő részeit. A csoport előtt adtam meg a koordinátáikat. A példában közel vannak a kész térképhez, de később a minta objektumokat el lehet helyezni a látóhatáron kívülre. Pl.: hely(-3000,0,0)
A csoportoknak B1, és B2 nevet adtam.
[3] Ezután a TÉRKÉP.ELEM utasítással egy tetszőleges karakterhez rendelem a csoportneveket. Az „x” lesz a B1 objektum, az „o” lesz a B2 objektum a térképen.
[4] A következő sorban megadtam a térképrajzolás kezdeti koordinátáit. Ehhez a ponthoz viszonyítva másolja majd az objektumokat a térkép utasítás.
[5] Majd meg kell adni a térképrács méretét. A TÉRKÉP.RÁCS utasítás első 3 paramétere a dx, dy, dz értéke, vagyis ennyit lép a kirajzolt objektum után a TÉRKÉP utasítás. Ebben az esetben dx=2, a többi nulla, tehát jobbra 2 egységgel rajzolja a következő elemet.
[6] A második 3 paraméter adja meg, hogy egy sornyi TÉRKÉP utasítás után a következő TÉRKÉP utasítás a kezdőponthoz képest mennyivel mozduljon el. A példában dz=2, a többi nulla, tehát előre 2 egységgel rajzolja a következő sort.
[7] Végül jöhet maga a térkép. A TÉRKÉP utasítás paramétereként egy karaktersort kell megadni. Ebben csak az előre megadott karaktereket használhatod, és a szóközt. A szóköz helyére nem rajzol semmit.
A következő videóban az anyagokkal foglalkozok. A test felszíni mintázatát több utasítás is szabályozza. A SZÍN utasítás legyen az első, mert ez befolyásolja a textúrák színét is. A SZÍN utasításban max. 5 paraméter adható meg. Az első a legfontosabb, mivel ez adja meg a test alapszínét a ráeső lámpa színével kalkulálva. Legtöbbször fehér fényt használunk, vagyis piros szín beállításakor tényleg piros lesz a tárgy felszíne.
A második szín a fényes felületek színe. Alapesetben fehér. A harmadik szín az árnyékos részek színe. Ez pedig fekete alapesetben.
Ezeket a színeket többféleképpen is meg lehet adni:
A piros szín: red, piros, #FF0000, #ff0000, vagy csak FF0000, ff0000
A fehér szín: white, fehér, #FFFFFF, #ffffff, vagy csak FFFFFF, ffffff
Az így megadott szín addig érvényes, amíg másik SZÍN utasítást nem talál a fordító!
A negyedik paraméter a fényes rész csillogása. Nulla esetnén nem csillog. Az ötödik paraméter a test átlátszósága.
Ezután jöhet a TEXTURE utasítás, ami egy pixeles képet feszít a test felszínére. A TEXTURE elé kell írni a BUMP utasítást, ami szintén egy pixeles kép, de ez a test felszínének érdességét szabályozza.
Néhány példa a különféle anyagokra: