Roblox, 6. kord

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")
function – iga funktsioon algab sõnaga function ja lõpeb sõnaga end
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:

d<==>klots (st funktsiooni poolt muudetava detaili d nimetus on klots)
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")

uusdetail(nimi,x,y,z,l,k,p,v)uusdetail on funktsiooni nimi, antud juhul on funktsioonil järgmised parameetrit n – detaili nimi, x – detaili x-koordinaat, y – detaili y-koordinaat, z – detaili z-koordinaat, l – detaili laius (mõõt x-teljel), k – detaili kõrgus (mõõt y-teljel), p – detaili pikkus (mõõt z-teljel) ja v – detaili värvi nimetus
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, zkoordinaatide 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:

nimi<==>“Klots1”
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.