Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
Funktsioonid saab jagada laias laastus kaheks – sisseehitatud (built-in) ja kasutaja poolt loodud (user-defined). Funktsiooni eesmärk on lihtsustada koodi kirjutamist – esiteks vältida korduvate koodide uuesti ja uuesti kirjutamist ning samal ajal hoida kood lühem ja arusaadavam. OOP programmeerimiseks kutsutakse funktsioone ka meetoditeks (methods).
Kui me uue skriptifaili loome, siis luuakse kaks funktsiooni, millest üks on väljakommenteeritud ja seda me siiani pole kasutanud. Tegemist on mängu oluliste funktsioonidega.
1 2 3 4 5 6 7 8 | extends Node func _ready(): pass func _process(delta): pass |
Muud sisseehitatud funktsioonid teeme selgeks töötamise käigus.
Funktsioonide loomise peale tuleks mõelda kogu aeg. Et kuidas saaksid lisada tegevuse funktsiooni konteinerisse ning seda muretult välja kutsuda. Funktsiooni loomisel lisa ette sõna func , anna funktsioonile nimi ja lisa tegevus pärast semikoolonit : . Ja ära unusta pärast funktsiooni kasutamast või väljakutsumast, kus lisad lihtsalt funktsiooni nime.
1 2 3 4 5 6 7 8 9 | func funktsiooniNimi(): tegevus #väljakutsumine funktsiooniNimi() funktsiooniNimi() funktsiooniNimi() funktsiooniNimi() |
Nüüd saad funktsiooni korduvalt välja kutsuda ning kui vaja teha muudatusi, siis muudad ainult ühte funktsiooni. Teeme kaks kõige lihtsamat funktsiooni.
1 2 3 4 5 6 7 8 9 10 11 12 13 | extends Node func _ready(): minuFunktsioon() pisikeArvutus() func minuFunktsioon(): print("Tere Godot") func pisikeArvutus(): var vastus = 8+9 print(vastus) |
Hetkel funktsioonid väljastavad tulemuse konsooli. Konsooli kasutame ainult meie, mängijad seda ei näe. Kui soovid, et funktsioon tagastaks mingi väärtuse ja sellega saaks midagi teha, siis kasuta lauset return . Ja siis saadud väljundit saame eraldi välja printida või kasutada mõne teise funktsiooni sees. Näiteks laseme ühel funktsioonil arvutada ringi pindala, mida saab omakorda kasutada silindri ruumala arvutamisel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | extends Node func _ready(): print("Ringi pindala: ",ringiPindala()) print("Silindri ruumala: ",silindriRuumala()) func ringiPindala(): # S=PI*r^2 var r = 8 var s = int(floor(PI * pow(r,2))) return s func silindriRuumala(): # V=PI*r^2*h var h = 9 var v = ringiPindala() * h return v |
Eelpool tegime funktsioonid, mille sisu polnud dünaamiline. Ehk selle sisu ei sõltu millestki. Selleks, et funktsioon oleks laiema haardega, siis anname ette parameetri. Parameetreid võib olla rohkem kui üks – eralda need lihtsalt komaga.
1 2 3 | func funktsiooniNimi(parameeter1, parameeter2, jne): tegevus |
Võtame ette sama silindri ruumala, mis vajab kahte argumenti arvutamiseks. Pane tähele, et parameetrid tuleb väljakutsumisel kirja panna.
1 2 3 4 5 6 7 8 9 10 | extends Node func _ready(): print("Silindri ruumala: ",silindriRuumala(18,10)) func silindriRuumala(r, h): # V=PI*r^2*h var v = int(floor(PI*pow(r,2)* h)) return v |
Väljakutsumisel võib kasutada ka muutujaid.
1 2 3 4 5 6 7 8 9 10 11 12 13 | extends Node var raadius = 18 var korgus = 10 func _ready(): print("Silindri ruumala: ",silindriRuumala(raadius,korgus)) func silindriRuumala(r, h): # V=PI*r^2*h var v = int(floor(PI*pow(r,2)* h)) return v |