Programiranje vlastite igre
Sada kada smo usvojili osnove, vrijeme je za programiranje vlastite igre.
Isprogramirat ćemo lopticu sličnu onoj iz prethodnog zadatka i drugu, manju lopticu. Cilj igre će biti s većom lopticom pokupiti manju kako biste osvojili bodove.
Prvo, moramo stvoriti varijable "posX" i "posY", koje će predstavljati poziciju igrača (veće loptice) na X i Y-osi.
Nakon što smo stvorili varijable, trebamo postaviti njihove početne vrijednosti.
Sada ćemo odrediti brzinu loptice na osi X i osi Y. To ćemo postići pomoću varijabli "velocityX" i "velocityY".
Još nekoliko varijabli je potrebno, kao što su "lastTime" i "score".
Sada ćemo kreirati novu funkciju zvanu "createPickup" koja će nam pomoći u stvaranju loptice koju će igrač skupljati.
Slijedeći korak je stvaranje novih varijabli koje će odrediti poziciju pickup loptice na X i Y-osi.
Poziciju postavljamo na nasumičnu vrijednsot između 10 i 150 na x osi, i između 10 i 110 na y osi.
Zatim ćemo napraviti novu funkciju nazvanu "physics".
Pomoću ove funkcije ćemo odrediti fizičke komponente igrice.
Prvo ćemo odrediti vrijednost TimeDelte:
Timedelta je vrijeme između trenutnog vremena i vrijednosti lastTime varijable.
Dijeljenjem vrijednosti s 1000.01 pretvaramo tu vrijednost u sekunde.
Zatim dodajemo lastTime koji je postavljen na vrijednost određenu na početku te dodajemo blokove koji će odrediti brzinu na Y osi.
Nakon toga, radimo promjene na brzini na osi Y pomoću blokova "velocityY = velocityY + TimeDelta * 60", simulirajući gravitaciju.
Sada ćemo raditi na promijeni pozicija x i y u odnosu na brzinu:
Blokovi "posX = posX + TimeDelta * velocityX" znače da će se pozicija na X-osi promijeniti sukladno brzini na X-osi i TimeDelti. Ponavljamo postupak za Y-os.
Nakon što smo riješili problem kretanja, sada trebamo odrediti što će se dogoditi ako loptica dotakne rub ekrana. Za to koristimo blok iz "Logic" sekcije.
Ako je loptica na poziciji manjoj od 5 na x osi, odnosno ako je otišla previše u lijevo, njen smjer kretanja će se okrenuti u desno.
Također, postavljamo X poziciju na 5 kako bismo spriječili da loptica ode predaleko ulijevo.
Isto tako postupamo i za desni rub ekrana, gdje smjer kretanja mijenjamo ako je pozicija veća od 155.
Sada ponavljamo postupak za y os:
Ako loptica ode previše prema gore, smjer kretanja će se okrenuti prema dolje.
Blokovi "set velocityY to velocityY * 0.8" smanjuju brzinu loptice za 0.8 kada udari u donju granicu.
Teži dio stvaranja igre je gotov!
Sada je vrijeme za crtanje loptica pomoću blokova iz "Display" blok sekcije.
Prije toga, moramo stvoriti funkciju nazvanu "draw" unutar koje stavljamo blok "fill frame with black" kako bismo zacrnili ekran.
Prva loptica koju crtamo je veća i predstavlja igrača.
Zatim crtamo manju lopticu koju igrač treba skupiti.
Važno je ne pomiješati koordinate X i Y i postaviti ih sukladno varijablama koje smo prethodno stvorili.
Također, koristimo različite boje za razlikovanje loptica.
Naravno, na ekranu želimo vidjeti ispis rezultata, što postižemo ovako:
Sljedeća funkcija koja nam je potrebna je "checkPickup" funkcija koja će detektirati je li igrač pokupio manju lopticu.
Prvo izračunavamo udaljenost između igrača i loptice pomoću formule:
Ako je udaljenost manja od 8 pixela dobit ćemo 1 bod:
Za kraj moramo dodati funkciju "createPickup" kako bi sve ovo radilo.
Zadnja stvar koju moramo napraviti je isprogramirati tipke.
Kada pritisnete tipku za gore, loptica će se kretati prema gore po osi Y.
Kada pritisnete desnu tipku, loptica će se pomicati u desno, a kad pritisnete lijevu tipku, loptica će se pomicati ulijevo.
Za kraj moramo u "loop forever" blok dodati sve napravljene funkcije osim "createPickup" te "scan buttons" kakop bi se kod mogao izvoditi bez problema.
Na kraju, vaš kod će izgledati ovako:
Sada je vrijeme da kliknete na "Run" i isprobate svoju prvu igru koju ste sami programirali.
Čestitamo!
Nadamo se da ste se zabavili i da ste naučili nešto novo o programiranju.