Roblox, 2. kord

Jätkame koodikirjutamisega. Ja järgmisena tekitame endale uusi kujundeid mänguväljale.
Uue kujundi lisamiseks:

detail=Instance.new("Part")
detail.Parent=game.Workspace
detail.Position=Vector3.new(50,20,30)
detail.Size=Vector3.new(2,4,6)
detail – muutuja nimetus
Instance – objekt
Part – täpsustame objekti liiki ja objektiks on kujund
Parent – mille alla uus kujund paigutatakse (NB! kõik mängu alguses nähtavad kujundid tuleb paigutada Workspace’i alla, kujundid, mida kasutatakse pärastpoole, saab panna ServerStorage’i alla)

Kuna vaikimisi kujund on klots, siis on mõnel juhul soov kujundit muuta, selleks tuleb kasutada lokaalset muutujat (lokaalne muutuja on selline, mida kasutatakse teatud programmijupi piires, alternatiivne variant on globaalne muutuja, mida kasutatakse kogu mängu ulatuses):

local detail=Instance.new("Part")
local – tähistab lokaalset muutujat

Kujundil on kolm võimalikku vormi – klots, kera ja silinder. Esimese sammuna siis loome uue kujundi, seejärel lisame ta mänguväljale ja pärast seda saame muuta tema vormi:

local detail1=Instance.new("Part")
detail1.Parent=game.Workspace
detail1.Name="Silinder"
detail1.Shape=Enum.PartType.Cylinder
detail1.Position=Vector3.new(50,10,30)
detail1.Size=Vector3.new(5,2,2)
local – tähistab lokaalset muutujat
Shape – määrab kujundi vormi
Cylinder – silinder (NB! Silindri puhul mõjutavad silindri mõõtmeid X- ja Y parameetrid, st eelnevalt kirja pandud detail1.Size=Vector3.new(5,2,2) annab silindri pikkuseks 5 ühikut ja läbimõõduks 2 ühikut. Kera puhul mõjutab kera läbimõõtu vaid X-parameeter, st eelnevalt oleks tegu keraga (detail1.Shape=Enum.PartType.Ball), siis detail1.Size=Vector3.new(5,2,2) tekitaks kera, mille läbimõõt on 5 ühikut – korrektne kirjapilt oleks selle juhul detail1.Size=Vector3.new(5,5,5).

Järgmiseks võtame vaatluse alla tsüklid – ühesugused tegevused, mida on võimalik kokku koondada.

Esmalt while-tsükkel – while-tsüklit teostatakse senikaua, kuni tema jaoks määratletud tingimus on täidetud. Näiteks saame niimoodi tekitada mitu klotsi:

i=0
while i<10 do

local detail2=Instance.new("Part")
detail2.Parent=game.Workspace
detail2.Position=Vector3.new(20+i*4,0,0)
wait(0.2)
i=i+1

end

i – kordaja, mis aitab tsüklit teostada kordi, algväärtuseks on 0 ja iga kord, kui tsükkel läbitakse, suurendatakse seda 1 võrra (i=i+1)
while i<10 dowhile-tsükli algus, mis sisaldab tingimust (antud juhul peab i väärtus olema väiksem kui 10 – i<10)
Vector3.new(20+i*4,0,0) – iga uus kujund paigutatakse eelmisest 4 ühiku võrra X-teljel kaugemale (20+4*i), esimesel korral, kuna i=0, X-koordinaadi väärtusega 20, teisel korral, kuna i=1, X-koordinaadi väärtusega 24 jne
endwhile-tsükli lõpp (while-do ja end ridade vahele kirjutatakse kõik tegevused, mida tuleb korrata)
NB! while i<10 do ja end vahel olevaid tegevusi teostatakse senikaua, kuni i väärtuseks saab 10!
NB! Koodi on mõistlik kirjutada astmeliselt – st tsükli sees olevad tegevused võiks nihutada ühe astme võrra paremale, niimoodi on koodi lihtsam jälgida ja sellest parem aru saada.

Teine tsüklivariant on for-tsükkel – for-tsükli korral määratakse kindlaks tsükli kordaja algväärtus, tsükli kordaja lõppväärtus ja tsüklis edasi liikumise samm. Näiteks saab eelneva while-tsükli for-tsükline kirja panna niimoodi:

for i=0, 10, 1 do

local detail2=Instance.new("Part")
detail2.Parent=game.Workspace
detail2.Position=Vector3.new(20+i*4,0,0)
wait(0.2)

end

for i=0, 10, 1 dofor-tsükli algus, millega määratletakse for-tsükli parameetrid – kordaja algväärtus (i=0), tsükli teostamise tingimus (10) ja samm (1)
i – kordaja, mis aitab tsüklit teostada, algväärtuseks on 0, lõppväärtus peab olema väiksem kui 10 ja iga kord, kui tsükkel läbitakse, suurendatakse i väärtust 1 võrra
endfor-tsükli lõpp (for-do ja end ridade vahele kirjutatakse kõik tegevused, mida tuleb korrata)
NB! for i=0, 10, 1 do ja end vahel olevaid tegevusi teostatakse senikaua, kuni i väärtuseks saab 10!

Kui küsida, milleks on välja mõeldud kaks erinevat tsüklit, siis vastus on selline, et:

  • for-tsüklit saab kasutada siis, tsükkel toimub kindla sammuga ja sellel on teada alg- ja lõppväärtus mille vahel toimetada
  • while-tsüklit saab kasutada siis, kui on tingimus, mille algväärtus on tõene ja kui see muutub vääraks, on võimalik tsükkel ära lõpetada.

Seekordseteks ülesanneteks on:

  • tekitada koodi abil mängualale uued kujundid – klots, kera ja silinder – ja paigutada nad üksteise kõrvale
  • kirjutada while- ja for-tsükli ümber selliselt, et i algväärtus oleks 10 ja lõppväärtus 0 ja tsükkel toimuks “tagurpidi”

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

Lõpetuseks ka väike arvutiteemaline sõnade otsimise mäng.