22.09. Neprijatelj, kretanje i reakcija na igrača
1. KREIRANJE SPRITE-A NEPRIJATELJA
U Resource Tree-u pronaći: Sprites
Desni klik na: Sprites → Create Sprite
Nazvati sprite: spr_enemy
Izabrati: Edit Sprite i nacrtati sliku za neki jednostavni neprijatelj.
Za početak je sasvim dovoljno napraviti, na primer, crveni kvadrat.
Kliknuti: OK
Sada imamo:
Sprites
└── spr_enemy
Napomena: Ovde još nismo napravili neprijatelja. Napravili smo samo njegov izgled.
2. KREIRANJE OBJEKTA NEPRIJATELJA
U Resource Tree-u: Objects → desni klik → Create Object
Nazvati: obj_enemy
U polju: Sprite izabrati: spr_enemy
Kliknuti: OK
Sada imamo:
spr_enemy
↓
obj_enemy
Objašnjenje:
spr_enemyje slika, aobj_enemyje objekat koji ćemo ubaciti u igru i kome ćemo dodavati ponašanje.
3. POSTAVLJANJE NEPRIJATELJA U ROOM
Otvoriti postojeći Room, na primer: room_game
U listi objekata izabrati: obj_enemy
Prevući objekat u Room.
Postaviti ga na odgovarajuće mesto.
Na primer:
┌─────────────────────────────┐
│ │
│ PLAYER ENEMY │
│ │
│ │
│ WALL │
│ │
└─────────────────────────────┘
Sačuvati projekat.
Pokrenuti igru.
Pitanje:
Šta se sada dešava sa neprijateljem?
Odgovor:
Ništa. Samo stoji.
I upravo je to sledeći problem koji rešavamo.
4. DODAVANJE PRVOG PONAŠANJA
Otvoriti: obj_enemy
Kliknuti: Add Event
Izabrati: Create
Sada imamo: Create Event
Ovaj događaj se izvršava kada se instanca objekta kreira u igri. U ovom događaju ćemo definisati početno ponašanje neprijatelja.
5. NAJJEDNOSTAVNIJE KRETANJE
U desnom delu GameMaker-a pronaći akciju za kretanje.
Koristiti: Move Fixed - Ova akcija omogućava da objekat počne da se kreće u određenom smeru.
Izabrati: Right i odgovarajuću brzinu, na primer: Speed = 2
Sada je logika:
obj_enemy
↓
Create Event
↓
Move Fixed
↓
→ → → → →
Pokrenuti igru.
Neprijatelj sada treba da se kreće udesno.
7. DODAVANJE DRUGOG NEPRIJATELJA
Kada prvi neprijatelj radi, ne praviti novi objekat.
U Room-u ponovo izabrati: obj_enemy
i prevući ga na drugo mesto.
Sada imamo:
obj_enemy
├── Enemy 1
└── Enemy 2
Oba koriste isti objekat.
Pokrenuti igru - Oba bi trebalo da imaju isto ponašanje.
Napomena:
Ne pravimo
obj_enemy1,obj_enemy2,obj_enemy3ako se svi ponašaju na isti način.
Jedan objekat može imati mnogo instanci.
8. DRUGI TIP KRETANJA
Sada možemo pokazati da neprijatelj ne mora da se kreće samo horizontalno.
Napraviti još jednu instancu:
obj_enemy
i omogućiti joj drugačije ponašanje.
Međutim, ovde treba biti pažljiv.
Ako svim instancama menjamo ponašanje preko istog obj_enemy, promenićemo ponašanje svih instanci.
Zato je za početni nivo bolje napraviti:
obj_enemy_horizontal
obj_enemy_vertical
ako želimo da učenici vide dva jasno različita tipa neprijatelja.
Za osnovni zadatak ovo nije obavezno.
9. SUDAR IGRAČA I NEPRIJATELJA
Sada prelazimo na najvažniji deo.
Otvoriti: obj_player
Kliknuti: Add Event
Izabrati: Collision i kao objekat izabrati: obj_enemy
Dobijamo:
obj_player
Collision with obj_enemy
To znači:
Kada igrač dođe u sudar sa neprijateljem, izvršiće se akcije koje ovde postavimo.
10. PRVI TEST COLLISION-A
Pre nego što dodamo živote, dobro je prvo pokazati da Collision zaista radi.
Možemo postaviti jednostavnu akciju koju učenici već poznaju iz prethodnog rada.
Na primer:
Jump to Start Position
Logika:
PLAYER
+
ENEMY
↓
COLLISION
↓
PLAYER SE VRAĆA
Pokrenuti igru.
Igrač dodiruje neprijatelja.
Ako se vrati na početnu poziciju, Collision radi.