Sel korral võtame vaatluse alla funktsioonid, parameetrid ja muutujad.
Funktsioon on osa koodist, mis saab kasutada mingite tegevuste tegemiseks (iseäranis kasulikud on funktsioonid siis selleks, et mingeid korduvate tegevuste jaoks ei oleks vaja samu ridu korduvalt kirja panna) ja mida tehakse ainult siis, kui funktsiooni poole pöördutakse.
Esmalt kasutame juba eelnevalt olemasolevat koodi, millega tekitasime klotsi:
local klots=Instance.new("Part")
klots.Parent=game.Workspace
klots.Name="Klots"
klots.Position=Vector3.new(-20,0,10)
klots.Size=Vector3.new(2,1,4)
klots.BrickColor=BrickColor.new("Royal purple")
Seejärel lisame uue koodiosa, funktsiooni nimega varv, millega abil muudame detaili värvi:
function varv(d,v)
d.BrickColor=BrickColor.new(v)
end
wait(2)
varv(klots,"Bright blue")
varv(d,v) – varv on funktsiooni nimi – selle saab ise valida ja seda kasutatakse hiljem, et funktsioon käivitada, funktsiooni nime järel lisatakse sulgudesse () funktsiooni parameetrid – need on andmevahetajad, st funktsiooni sees kasutatakse neid parameetreid ja need saavad algväärtuse sel hetkel, kui funktsiooni poole pöördutakse – antud juhul on funktsioonil 2 parameetrit d ja v, d – detaili nimetus, v – värvi nimetus
d.BrickColor=BrickColor.new(v) – muudetakse detaili d värv uueks värviks, mille nimetus on v
end – funktsiooni lõpu tähis (ehk siis, kõik soovitud funktsiooni poolt tekitatavad read peavad jääma sõnade function ja end vahele)
wait(2) – oodatakse 2 sekundit (kasutatakse süsteemset funktsiooni wait, mille ainsaks parameetriks on aeg, sekundites)
varv(klots,”Bright blue”) – funktsiooni käivitamine, kusjuures funktsiooni parameetritele omistatakse väärtused järgmiselt:
v<==>“Bright blue” (st funktsiooni tulemusena saab detaili klots uue värvi, nimega “Bright blue”)
Analoogselt võime näiteks luua funktsiooni uusdetail, mille abil saame tekitada uue detaile:
function uusdetail(nimi,x,y,z,l,k,p,v)
det=Instance.new("Part")
det.Parent=game.Workspace
det.Name=nimi
det.Position=Vector3.new(x,y,z)
det.Size=Vector3.new(l,k,p)
det.BrickColor=BrickColor.new(v)
end
uusdetail("Klots1",-10,0,10,2,3,4,"Tawny")
wait(3)
det.BrickColor=BrickColor.new("Daisy orange")
det=Instance.new(“Part”) – NB! kuna tahame selle detaili poole pöörduda hiljem ka väljastpoolt funktsiooni uusdetail, siis jätame eest ära sõna local, mida kasutades saaksime seda detaili muuta ainult antud funktsiooni sees
det.Name=nimi – muudetakse detaili det nime, uueks nimeks saab nimi
det.Position=Vector3.new(x,y,z) – määratakse kindlaks detaili det asukoht – x-, y–, z–koordinaatide järgi
det.Size=Vector3.new(l,k,p) – määratakse kindlaks detaili det mõõdud – l, k, p parameetrite järgi
uusdetail(“Klots1″,-10,0,10,2,3,4,”Tawny”) – funktsiooni uusdetail käivitamine, kusjuures funktsiooni parameetritele omistatakse väärtused järgmiselt:
x<==>-10
y<==>0
z<==>10
l<==>2
k<==>3
p<==>4
v<==>“Tawny”
Ehk veidi teisiti esitatuna:
function uusdetail | nimi | x | y | z | l | k | p | v |
uusdetail | “Klots1” | -10 | 0 | 10 | 2 | 3 | 4 | “Tawny” |
det.BrickColor=BrickColor.new(“Daisy Orange”) – muudame lisatud detaili det värvi NB! detail det on ligipääsetav ka väljastpoolt funktsiooni uusdetail (prooviks võib funktsioonis uusdetail reale det=Instance.new(“Part”) lisada ette sõna local ja vaadata, mis kas soovitud muutus toimub)
Seekordseks ülesandeks on luua funktsioon:
- mida kasutatakse for-tsükli sees:
- mille algväärtus on 1
- mille lõppväärtus on 10
- mis tekitab klotsid üksteise peale
- kus klotside loomise vahel oodatakse 1 sekund
- milles klotsid:
- 1-3 on üht värv
- 4-6 on teist värvi
- 7 ja 8 on kolmandat värvi
- 9 ja 10 on neljandat värvi
Vihjed on järgmised:
- vihje nr 1: saab kasutada eelnevalt toodud funktsiooni uusdetail
- vihje nr 2: esialgset funktsiooni uusdetail muutmata tuleb tingimuslaused kirjutada for-tsüklisse enne funktsiooni uusdetail käivitamist
- vihje nr 3: tingimuslaused saab kirjutada ka funktsiooni uusdetail sisse, aga sel juhul tuleb funktsioonile uusdetail lisada uus parameeter, mis kannab endas for-tsükli kordaja väärtust (st infot selle kohta, mitmendat korda for-tsüklit läbitakse)
Pärast vajalikke muudatusi salvesta muudatused, valides kas:
- salvestamise faili (projekt on siis ainult kohalikus arvutis) File -> Save to File või
- Roblox’i keskkonda (projekt on kättesaadav Roblox’i keskkonnast) File -> Save to Roblox
Seekordseks nuputamisülesandeks on pusle.