15.09 Događaji i kretanje objekata u GameMaker-u
U prethodnom bloku napravili smo:
-
Sprite;
-
Object;
-
Room.
Napravili smo igrača i postavili ga u scenu.
Međutim, kada smo pokrenuli igru, igrač je samo stajao.
Zašto?
Zato što mu još nismo rekli šta treba da radi.
U ovom bloku naučićemo kako da objektu dodamo ponašanje.
1. Šta je događaj?
U video igrama stalno se događaju različite stvari.
Na primer:
-
igrač pritisne taster;
-
igrač pusti taster;
-
objekat se sudari sa drugim objektom;
-
prođe određeno vreme;
-
objekat se kreira;
-
igrač klikne mišem.
Takve situacije nazivamo događajima — Events.
Događaj možemo posmatrati kao pitanje:
„Šta se upravo dogodilo?“
A zatim definišemo:
„Šta objekat treba da uradi kada se to dogodi?“
2. Primer događaja
Zamislimo da imamo igrača: obj_player
Želimo da se pomeri kada pritisnemo strelicu levo.
Imamo:
Događaj:
Keyboard ←
↓
Akcija:
pomeri objekat ulevo
Dakle:
taster → događaj → akcija → pomeranje
3. Zašto je događaj važan?
Object koji smo napravili u prethodnom času ima izgled, ali još nema ponašanje.
Imamo:
spr_player
↓
obj_player
Kada dodamo događaj:
obj_player
↓
Keyboard Event
↓
akcija
↓
kretanje
Object sada može da reaguje na igrača.
4. Tastatura kao način upravljanja
Najjednostavniji način upravljanja igračem jeste pomoću tastature.
Možemo koristiti strelice:
↑
← →
↓
Na primer:
-
↑ — gore;
-
↓ — dole;
-
← — levo;
-
→ — desno.
Za svaki pravac možemo napraviti odgovarajući događaj.
5. Kretanje ulevo
Za objekat: obj_player
dodajemo događaj: Keyboard <Left>
Zatim dodajemo akciju kojom objekat počinje da se kreće ulevo.
Kada igrač pritisne strelicu levo: ←
objekat se pomera u tom pravcu.
6. Kretanje udesno
Dodajemo: Keyboard <Right> i akciju za kretanje udesno.
Sada imamo:
← IGRAČ →
Igrač može da se pomera horizontalno.
7. Kretanje gore i dole
Na isti način možemo napraviti: Keyboard <Up> za kretanje nagore i: Keyboard <Down>
za kretanje nadole.
Sada imamo četiri osnovna pravca:
↑
│
← ■ →
│
↓
8. Dva načina razmišljanja o kretanju
Kada pravimo igru, moramo razlikovati:
Pritisak tastera - Događaj se događa kada pritisnemo određeni taster.
Držanje tastera - Ako želimo prirodnije kretanje, često želimo da se objekat kreće dok igrač drži taster.
Za početak je dovoljno da razumemo da GameMaker može da reaguje na događaje povezane sa tastaturom.
9. Više događaja za jedan Object
Jedan objekat može imati veliki broj događaja.
Naš: obj_player
može imati:
Keyboard Left
Keyboard Right
Keyboard Up
Keyboard Down
Dakle:
obj_player
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Left Right Up
│ │ │
↓ ↓ ↓
levo desno gore
↓
Down
↓
dole
10. Događaji određuju ponašanje
Objekat ne mora uvek da radi istu stvar.
Na primer:
Keyboard Left
↓
kretanje ulevo
Keyboard Right
↓
kretanje udesno
Keyboard Up
↓
kretanje nagore
Keyboard Down
↓
kretanje nadole
Zato možemo reći:
Događaji omogućavaju da definišemo kako će objekat reagovati na različite situacije.
11. Naš prvi interaktivni igrač
Naš cilj je da od prethodne scene napravimo nešto interaktivno.
Pre je bilo da:
IGRAČ
■
ne radi ništa
Posle ovog bloka:
↑
│
← ■ →
│
↓
Igrač može da reaguje na tastaturu.
To je prvi korak od obične scene ka pravoj igri.
12. Vežba 1 — Kretanje levo i desno
Otvoriti prethodni projekat.
Izabrati: obj_player
Dodati događaj za: Keyboard Left
Dodati akciju za kretanje ulevo.
Zatim dodati: Keyboard Right
i akciju za kretanje udesno.
Pokrenuti igru.
Proveriti:
-
da li se igrač pomera ulevo;
-
da li se igrač pomera udesno.
13. Vežba 2 — Kretanje u četiri pravca
Dodati još:
Keyboard Up
Keyboard Down
Sada igrač treba da može da se kreće u sva četiri pravca.
Testirati:
↑
← ■ →
↓
14. Eksperimentisanje
Promeniti brzinu kretanja.
Napraviti da igrač bude:
-
sporiji;
-
brži.
Posmatrati razliku.
Postaviti sebi pitanje:
Šta se događa ako je brzina prevelika?
15. Zadatak za vežbu
Napraviti scenu u kojoj igrač može da se kreće.
Scena treba da sadrži:
-
igrača;
-
najmanje četiri prepreke;
-
najmanje jedan dodatni objekat;
-
kretanje igrača pomoću tastature.
Igrač treba da reaguje na:
↑
↓
←
→
16. Dodatni zadatak
Ako je osnovni zadatak završen, promeniti način upravljanja.
Napraviti mogućnost da se igrač kreće pomoću:
W
A
S
D
gde:
W = gore
S = dole
A = levo
D = desno
17. Pitanja za proveru znanja
-
Šta je Event?
-
Zašto je događaj važan za objekat?
-
Šta je Keyboard Event?
-
Šta se događa kada pritisnemo određeni taster?
-
Može li jedan Object imati više događaja?
-
Kako napraviti kretanje ulevo?
-
Kako napraviti kretanje udesno?
-
Koja četiri osnovna pravca kretanja koristimo?
-
Koja je razlika između objekta koji postoji u Room-u i objekta koji ima definisano ponašanje?
-
Šta smo dodali igraču u ovom bloku što nije imao u prethodnom?
18. Osnovni pojmovi
U prethodnom bloku naučili smo:
Sprite → Object → Room
U ovom bloku dodajemo:
Event → Action → Behavior
Zato sada možemo da razmišljamo o igri ovako:
Sprite
↓
Object
↓
Event
↓
Action
↓
Behavior
↓
Interaktivna igra
Zapamtiti:
Objekat dobija ponašanje tako što definišemo šta treba da uradi kada se dogodi određeni događaj.