Ebben a leckében a geometria nagy részét a program generálja. Az eleje szinte teljesen megegyezik az FPV labirintusos példával.
Röviden: 7. sor: Egy fényforrás, ami árnyékot vet majd |
Ezután indítunk egy tömböt, listát, amibe 5 db textúra nevét fogjuk egymás után betölteni. Legfeljebb 20 db ilyen textúra kerülhet a tömbbe! |
Minden programnyelvben vannak olyan utasítások, amelyek egy kódrész megismételnek. Itt a FOR utasítás jelzi az ismétlés elejét, és a NEXT a végét. A kettő közötti kód lesz 40x megismételve. Az ismétléseket egy n nevű változó számolja. Az n értéke 1-40 között változik. Tehát 40 db henger ( kúp) generálódik majd.
Tetszőleges nevű változót használhatunk a programban matematikai művelet elvégzésére, véletlenek generálására, majd ezeket a változókat használhatjuk bármelyik eddig tanult utasításban.
Nézzük a kódot soronként:
46. sor: Egy m nevű változóba 4-12 közötti egész számot generál véletlenszerűen. Ez lesz a kúp magassága 47. sor: Egy r nevű változóba 2-3 közötti véletlenszám, a kúp alapjának sugara 49. sor: A kúp helyének x koordinátája véletlenszerűen -70, és 70 között 50. sor: Mivel a kúpokat az XZ síkra akarjuk helyezni, a geometriai közepük a magasság fele lesz. 51. sor: A kúp helyének z koordinátája véletlenszerűen -70, és 70 között 53. sor: Az előzőleg feltöltött textúra tömbből egyet véletlenszerűen kiválasz. A felületen vízszintesen 8x, függőlegesen 4x fog ismétlődni a textúra. 54. sor: A HELY utasítás az előzőleg feltöltött változókat használja. 55. sor: A HENGER utasítás első paramétre a henger felső sugara, ami most 0.1, mivel kúpot szeretnénk rajzolni. A második paraméter az alsó sugár, amit az r változó tárol, illetve a magasság, amit az m változó tárol. A 46-51. sorok közötti véletlen értékek módosításával nagyon változatos világokat lehet generálni. Minden fordításnál természetesen új véletlenek lesznek, tehát más-más világot kapunk. |
EXTRA kiegészítés
A kód végére gépelve ez a ciklus 20 db gömböt generál 5-10 egység magasságban, de a textúrája állandó.