Kako stvoriti umjetnu inteligenciju za neprijateljskog sluzavca | hyperPad Documentation

Loading...

Logo
DocumentationTutorialiKako stvoriti umjetnu inteligenciju za neprijateljskog sluzavca

IMG_0139.TRIM.GIF

Napomena: Dovršen projektni fajl za ovaj vodič može se pronaći na kraju ovog članka.

Uvod

U ovom vodiču, stvorit ćemo umjetnu inteligenciju (AI) za uvjerljivog neprijateljskog sluzavca za igru u stilu platformaša. Pokrit ćemo neke naprednije funkcije i ponašanja u hyperPadu, pa ovaj vodič pretpostavlja neko osnovno znanje o hyperPad editoru. Ako mislite da se trebate bolje upoznati s izradom igre od nule, možete provjeriti Potpunu uputu - Izrada platformskih igara prvo.

Kako bismo sluzavcu dali "inteligenciju", trebao bi raditi više od jednostavnog kretanja naprijed-nazad, i trebao bi biti donekle svjestan svog okruženja.

Zvuči uzbudljivo! No, prije nego što počnemo, trebali bismo prvo detaljno opisati kako bi se neprijateljski sluzavac trebao ponašati:

  • Umjesto hodanja, sluzavac će skočiti lijevo ili desno kako bi se pomakao.
  • Sluzavac će skočiti u smjeru igrača.
  • Ako je igrač predaleko, sluzavac se neće kretati (miruje).
  • Sluzavac će oduzeti zdravlje igraču pri kontaktu.
  • Sluzavac je poražen ako igrač skoči na njega.

Sada kada znamo što želimo učiniti, hajdemo započeti!

Dio 1: Postavljanje projekta

U ovom vodiču, započet ćemo novi projekt od nule kako bismo stvari zadržali jednostavnima. Napravite novi projekt i postavite na "Bočni pogled", možete ostaviti ostale postavke na njihovim zadanim vrijednostima.

Sa svojim novim projektom, idite u Biblioteku resursa i preuzmite "Platformer Starter Pack" od hyperPad-a u trgovini resursima. (Besplatno je!)

a7JUWwiO.jpg

Photo_2019-06-26__1_15_13_PM.png

Sada kada imamo neke resurse s kojima možemo raditi, slobodno stavite nekoliko blokova tla i stvorite svoj svijet. Ako već niste tamo, idite u Biblioteku resursa i dodirnite "Preuzimanja", zatim "Platformer Starter Pack".

Na slici ispod, neki blokovi tla ("Grass World" mapa) su postavljeni i pozadina ("Backgrounds" mapa) je postavljena.

Photo_2019-06-26__1_16_22_PM.png

Sada kada imamo lijepu scenu s kojom možemo raditi, dodajmo objekte Igrača i Sluzavca. Idite u biblioteku resursa i otvorite svoju mapu "Preuzimanja", zatim mapu "Platformer Starter Kit" ako već nisu otvorene.

Koristit ćemo "Zeleni astronaut" kao igrača, pa dodirnite resurs zelenog astronauta da biste vidjeli sve njegove animacijske cikluse. Po defaultu, želimo da igrač jednostavno stoji, pa dodirnite "Stoj" animaciju i stavite je na scenu.

U istoj mapi u biblioteci resursa, također postoji "Slime Pink" animirani lik. Savršeno za korištenje kao neprijateljski sluzavac! Dodirnite resurs sluzavca i odaberite "Pomiči" animaciju i stavite sluzavca na svoju scenu s likom igrača.

Photo_2019-06-26__1_17_03_PM.png

Do sada, sve izgleda dobro! Sada imamo naš objekt igrača i objekt sluzavca, spremne za korištenje. No, ako bismo sada igrali naš projekt, ne bismo mogli interakciju s igrom. Tako da, morat ćemo stvoriti nekakvu logiku da oživimo našu igru.

Dio 2: Kontrole Igrača

Prije nego što se uhvatimo u rad s davanjem života našem neprijateljskom sluzavcu, prvo trebamo imati neke kontrole igrača za zelenog astronauta.

Dodirnite zelenog astronauta i postavite njegov fizički način s zida na fizički, što će omogućiti igraču slobodno kretanje. Zatim, dodirnite dugme "Ponašanja" da otvorite editor ponašanja za našeg igrača kako bismo mogli dodati neke kontrole.

IMG_0054.JPG

U editoru ponašanja za našeg igrača, već biste trebali vidjeti osamljeno Sviraj animaciju ponašanje. Možemo to ponašanje ostaviti, ali možemo mu dati neke prijatelje.

U odjeljku Interakcija, stavite bilo gdje ponašanje Kontrolirano joystickom kao i ponašanje Skok s dugmetom. Sa ovim ponašanjima, naš igrač je sada spreman za kontrolu. No, nedostaje mu animacija.

Dodirnite ponašanje Kontrolirano joystickom i postavite "Animaciju lijevo sa joysticka" na "Pohod" animacijski ciklus u resursu Zeleni astronaut. Učinite isto s "Animacijom desno sa joysticka".

Photo_2019-06-26__1_18_28_PM.png

Sada naš lik igrača hoda, ali se još ne animira kada skoči.

Dodirnite ponašanje Skok s dugmetom i promijenite "Animaciju pada" i "Animaciju skoka" na "Skok" animacijski ciklus.

Photo_2019-06-26__1_18_56_PM.png

Ako sada igramo našu igru, možemo se kretati i skakati! Sljedeće, možemo se posvetiti našem sluzavcu.

Photo_2019-06-26__1_19_50_PM.png

Dio 3: Kretanje sluzavca

Kako smo detaljno opisali u uvodnom dijelu ovog vodiča, želimo da naš sluzavac skače prema igraču. Da bi to učinio, sluzavcu treba znati gdje se igrač nalazi u svijetu. Zato bismo trebali dodati Oznaku našem liku igrača, kako bi naša ponašanja mogla dohvatiti naš lik igrača u bilo kojoj sceni.

Dodirnite lika igrača, a zatim odaberite karticu Oznake na dnu prikaza svojstava. Upišite "Igrač" u tekstualno polje na vrhu izbornika oznaka i pritisnite dugme za dodavanje (+) pored njega. Sada je naš lik igrača označen oznakom "Igrač".

Photo_2019-06-26__1_23_06_PM.png

Slično onome što smo učinili s likom igrača, dodirnite sluzavca i postavite njegov fizički način sa zida na fiziku. Zatim, dodirnite dugme Ponašanja da otvorite editor ponašanja sluzavca.

IMG_0058.JPG

U editoru ponašanja, idite do odjeljka Prilagođeno i ispustite ponašanje Tajmer u editor.

Dodirnite ponašanje Tajmer i postavite njegov interval na 2 sekunde.

Photo_2019-06-26__4_21_59_PM.png

Ovo će biti početak naše logike za umjetnu inteligenciju našeg sluzavca.

Ideja je da svakih 2 sekunde, naš sluzavac "misli" što sljedeće učiniti, kao: Treba li sluzavac skočiti? Ako odluči skočiti, u kojem smjeru treba skočiti?

Sljedeće, idite do odjeljka Transformacija i stavite ponašanje Dohvati poziciju. Dodirnite to i postavite cilj na oznaku "Igrač" koju smo ranije stvorili dodirivanjem kartice Oznake na dnu prikaza svojstava i odabirom "Igrač". Sada povežite Tajmer s ponašanjem Dohvati poziciju.

Photo_2019-06-26__4_22_22_PM.png

Sada znamo gdje se naš igrač nalazi u svijetu! Da bismo odredili je li igrač lijevo ili desno od sluzavca, također trebamo znati gdje se sluzavac nalazi u svijetu.

Povucite još jedno ponašanje Dohvati poziciju u editor. Po defaultu, ponašanje već cilja naš sluzavac, tako da ne trebamo raditi ništa osim povezivanja s logičkom granom. Povežite ponašanje Dohvati poziciju za igrača s ponašanjem Dohvati poziciju za sluzavca.

Photo_2019-06-26__4_22_40_PM.png

Opcionalno: Kako bismo olakšali razumijevanje, preimenovao sam svoje ponašanje Dohvati poziciju da jasnije označim što prate: "Dohvati poziciju igrača" i "Dohvati poziciju sluzavca". Ovo je opcionalno, ali ako želite promijeniti imena ponašanja, možete to učiniti dodirivanjem ponašanja i dodirivanjem njegovog imena na vrhu prikaza svojstava.

Do sada imamo to da svakih 2 sekunde, sluzavac dohvaća poziciju lika igrača i sebe. Sada kada imamo te informacije, možemo odrediti hoće li sluzavac skočiti lijevo ili desno.

U odjeljku Logika kartice, ispustite i povežite ponašanje Ako. U svojstvima, postavite prvu vrijednost na prvu Dohvati poziciju (označenu "Igrač") x-poziciju povlačenjem izlazne vrijednosti ponašanja u polje u svojstvima Ako. Za drugu vrijednost, postavite je na drugu Dohvati poziciju (sluzavac) x-poziciju. Na kraju, postavite uvjet ponašanja Ako na "Manje od" (<).

Napomena: x-pozicija objekta je vrijednost koja predstavlja gdje se objekt nalazi u svijetu na njegovoj x-osi. (Lijevo i desno)

IMG_0061.JPG

Što to sve znači? Ponašanje Ako će provjeriti je li x-pozicija igrača manja od x-pozicije sluzavca. Ako je to istina, izvršit će se sljedeće povezano ponašanje. Što to u suštini znači je da ako je igrač dalje lijevo od sluzavca, tada će izvršenje ponašanja nastaviti.

U redu, sada imamo logiku postavljenu da sluzavac skoči lijevo, tako da hajdemo ga natjerati da točno to učini!

U odjeljku Fizika ponašanja odjeljka, ispustite i povežite ponašanje Primijeni Silu s Ako ponašanjem. U svojstvima, postavite Silu na: x = -0.5, y = 1. Zatim, postavite množitelj na značajnu brojku, 200 bi trebao biti dobar.

Photo_2019-06-26__1_28_06_PM.png

Što sada imamo je ako sluzavac pronađe igrača dalje lijevo nego sebe, skočit će prema gore (y = 1 × 200) i malo lijevo (x = -0.5 × 200).

Pokušajte! Igrajte igru i testirajte kako bi sve trebalo raditi. Ono što bi trebalo vidjeti je sluzavac koji skače lijevo svake 2 sekunde, sve dok je igrač lijevo od njega. Ako premjestite igrača udesno od sluzavca, trebao bi prestati skakati sve dok se ne pomaknete lijevo od njega ponovo.

Photo_2019-06-26__1_28_50_PM.png

Napomena: Ako vaš sluzavac ne se pomiče, prođite kroz prethodne korake kako biste provjerili jeste li nešto propustili. Provjerite jesu li ponašanja ispravno povezana i da je fizički način vašeg sluzavca postavljen na fiziku (pokretni) umjesto zid (nepokretni). Također, uskoro ćemo ispraviti problem u kojem će sluzavac ponekad flipnuti na svoju stranu ili naopako.

Odličan napredak do sada! Ako će vaš sluzavac skakati kako je očekivano, tada smo spremni nastaviti. Završimo s njegovim ponašanjima kretanja omogućavajući sluzavcu da skoči i desno.

Natrag u editoru ponašanja sluzavca, duplicirajte Ako ponašanje. Povucite i spojite novo Ako ponašanje s desne strane originalnog Ako ponašanja. To će ga pretvoriti u ponašanje "Ili ako".

Duplicirajte ponašanje Primijeni Silu također, i povežite ga s novim "Ili ako" ponašanjem.

U svojstvima "Ili ako", promijenite uvjet iz "Manje od" (<) u "Veće od" (>). To će imati suprotan učinak od prvog Ako. Ako prvotno Ako ponašanje nije istinito, tada će provjeriti je li "Ili ako" ponašanje istinito. Znači, ako igrač nije lijevo od sluzavca, provjerit će je li desno od sluzavca, i nastaviti izvršavati povezana ponašanja pod "Ili ako".

Trebaš imati grananje ponašanja koja izgleda otprilike ovako:

Photo_2019-06-26__1_30_01_PM.png

U drugom Primijeni Silu (ispod "Ili ako"), promijenite njegova svojstva tako da njegova sila bude x = 0.5, umjesto x = -0.5. Sada će sluzavac umjesto skakanja lijevo skočiti desno.

Photo_2019-06-26__1_30_05_PM.png

Igramo projekt i ponovo pokušavam! Sada biste trebali vidjeti sluzavca kako skače u smjeru u kojem se igrač nalazi. Odlično!

Jedna stvar koju ste možda primijetili tijekom testiranja igre je da ako se sudarite sa sluzavcem, on ponekad može pasti na svoju stranu ili ići naopako. Želimo da sluzavac ostane uspravan, pa to brzo popravimo.

Natrag u editoru ponašanja sluzavca, idite do odjeljka ponašanja Transformacija i ispustite ponašanje Zaključaj rotaciju u editor. Nema potrebe da ga povežete s drugim ponašanjem, želimo da zaključa svoju rotaciju čim se sluzavac stvori, tako da možete to ostaviti onakvim kakvim jest. Kada završite, probajte igru ponovo. Ovaj put biste trebali malo teže pokušati oboriti sluzavca na svoju stranu.

Photo_2019-06-26__1_32_26_PM.png

Možda ste također primijetili da animacija sluzavca prebrzo igra. Ako se to događa, dodirnite ponašanje Sviraj animaciju u editoru ponašanja sluzavca i promijenite okvir po sekundi na mnogo manji broj. 6 okvira po sekundi izgleda prilično dobro.

Photo_2019-06-26__1_38_22_PM.png

Super! Sada naš sluzavac ne samo da se lijepo kreće, već i izgleda sjajno. Većinu logike kretanja našeg sluzavca smo završili.

Međutim, također želimo da sluzavac skoči samo ako je igrač u blizini. Tako da, ako izgradimo veći svijet, sluzavci udaljeni neće odmah pokušati skočiti prema i napasti igrača. U sljedećem dijelu, pogledat ćemo dodavanje još jednog uvjeta da blokiramo logiku skakanja ako je igrač predaleko.

Dio 4: Mirujeći Sluzavac

U ovom dijelu implementirat ćemo neka ponašanja sluzavca koja će ga natjerati da miruje (to jest, ne kreće se) kada je igrač predaleko.

Da bismo to postigli, trebamo pronaći način da izmjerimo udaljenost između našeg sluzavca i igrača. Srećom, postoje ponašanja koja to mogu učiniti! Hajdemo raditi.

Otvorite editor ponašanja sluzavca i ispustite ponašanje Izračunaj udaljenost iz odjeljka Logika. U njegovim svojstvima, prvi objekt je već postavljen na naš sluzavac. Za drugi objekt, idite na izbornik kartica i odaberite oznaku "Igrač".

Photo_2019-06-26__1_48_54_PM.png

Ovo ponašanje, kada se izvrši, izračunat će udaljenost u metrima od našeg sluzavca do igrača. Koristeći te informacije, možemo vidjeti je li igrač predaleko tako da provjerimo premašuje li određenu udaljenost.

Stavite još jedno Ako ponašanje iz odjeljka Logika i povežite ga ispod ponašanja Izračunaj udaljenost. U svojstvima Ako ponašanja, postavite prvu vrijednost na izlaznu vrijednost Izračunaj udaljenost. Postavite uvjet na "Manje od" i drugu vrijednost na 15.

Sada imamo način provjere je li igrač predaleko tako što ćemo vidjeti je li udaljenost između sluzavca i igrača manja od 15 (metara). Ako je ta okolnost lažna, tada je igrač predaleko i ponašanje Ako neće izvršiti sljedeće ponašanje.

IMG_0085.JPG

Sada kada imamo naš novi uvjet spreman za korištenje, odvojite Dohvati poziciju (sluzavac) i staro Ako ponašanje iz prethodnog dijela vodiča i napravite mjesta za naš novi uvjet. Možete odvojiti ponašanja dodirom i držanjem poveznica između ponašanja.

Sa novim uvjetom udaljenosti na mjestu, povežite Dohvati poziciju (sluzavac) s ponašanjem Izračunaj udaljenost, a zatim povežite novo Ako ponašanje sa starim Ako ponašanjem. Sada bi trebali imati nešto kao ovo:

Photo_2019-06-26__1_50_57_PM.png

Počinje izgledati prilično komplicirano, ali ideja je relativno jednostavna. Sada imamo, prije nego što provjerimo u kojem smjeru sluzavac treba skočiti, prvo provjeravamo je li udaljenost između sluzavca i igrača manja od 15 (metara).

Ako je igrač bliže od 15 metara, tada će nastaviti i provjeriti u kojem smjeru bismo trebali skočiti, kao i obično. Ako je igrač dalje od 15 metara, ne nastavljamo i logika se završava tu sve do sljedeće prilike kada sluzavac "promisli" ponovo (za 2 sekunde).

Probajte igru! Ako se previše približite sluzavcu, trebao bi početi skakati prema vama, ali ako se previše udaljite, trebao bi prestati kretati i čekati da se ponovo približite.

Naš sluzavac počinje izgledati prilično zastrašujuće sada, ali još uvijek mu nedostaje način nanošenja štete igraču. U sljedećem dijelu ovog vodiča, dat ćemo igraču zdravlje i implementirati neku logiku za nanošenje štete igraču.

Dio 5: Napad na igrača

Kako je navedeno u uvodnom dijelu, implementirat ćemo napade sluzavca tako da sluzavac povrijedi igrača kada dotakne igrača. Da bismo započeli implementaciju načina na koji sluzavac može napasti igrača, prvo moramo dati igraču malo zdravlja.

U glavnom editoru, odaberite sloj Scene UI sloj i stvorite novi objekt uz pomoć Specijalnih objekata. Dodirnite "Zdravstvena traka" kako biste stvorili zdravstvenu traku za našeg igrača.

IMG_0120.JPG

Pošto je postavljena na sloju Scene UI, ako odlučimo proširiti naš svijet i pratiti igračivreta, ostat će u istom položaju na ekranu.

Možete je staviti bilo gdje da odgovara ekranu. Smjestio sam je u sredinu ekrana blizu dna.

Photo_2019-06-26__1_39_49_PM.png

Kada završite s pronalaženjem dobrog mjesta za svoju zdravstvenu traku, možemo se posvetiti dodavanju načina za uklanjanje zdravlja iz zdravstvene trake. Vratite se na Glavni sloj gdje je vaš sluzavac i ponovo otvorite njegov editor ponašanja.

Na lijepom praznom mjestu u ponašanju sluzavca, ispustite ponašanje Sudar koje se nalazi pod odjeljak Objekti. U njegovim svojstvima, postavite drugi objekt na oznaku "Igrač".

Photo_2019-06-26__1_38_54_PM.png

Pod sekcijom Prilagođena ponašanja, ispustite ponašanje Pošalji poruku i povežite ga ispod ponašanja Sudar. U svojstvima ponašanja Pošalji poruku, postavite Ključ događaja na "igrac pogodjen", i postavite vrijednost na -10.

Zapamtite: Ključevi događaja su osjetljivi na velika i mala slova! Radi jednostavnosti, ovaj vodič će koristiti mala slova za ključeve događaja. Možete odabrati koristiti velika slova ako želite, ali pazite da zapamtite koja slova su velika za kasnije.

Photo_2019-06-26__1_41_06_PM.png

Sad imamo način otkrivanja kada bi igrač trebao izgubiti zdravlje. Kada igrač dođe u kontakt sa sluzavcem, poruka za događaj "igrač pogodjen" će se emitirati s vrijednošću -10. Koristit ćemo -10 da kažemo zdravstvenoj traci da"doda" -10 zdravlja, i s obzirom da je vrijednost negativna, to će ukloniti 10 zdravlja.

Još uvijek trebamo dodati tu logiku u zdravstvenu traku, pa hajdemo to sada učiniti. Izađite iz editora ponašanja sluzavca, a zatim u glavnom editoru dodirnite sloj Scene UI, zatim dodirnite zdravstvenu traku. Otvorite editor ponašanja za zdravstvenu traku.

U editoru ponašanja za zdravstvenu traku, ispustite ponašanje Primanje poruke iz sekcije Prilagođena. U njegovim svojstvima, postavite Ključ događaja na "igrač pogodjen". (Zapamtite da je osjetljiv na velika i mala slova!)

Photo_2019-06-26__1_40_12_PM.png

Ovo ponašanje će nam biti slušatelj za poruku "igrač pogodjen" poslane kada god igrač udari sluzavca. Kada ovo ponašanje otkrije emitiranu poruku za "igrač pogodjen" bilo gdje u igri, izvršit će.

Uključite ponašanje Dodaj u zdravstvenu traku ispod UI odjeljka ponašanja i povežite ga ispod ponašanja Primanje poruke.

U svojstvima Dodaj u zdravstvenu traku, povucite izlaznu vrijednost iz ponašanja Primanje poruke u polje "Vrijednost za dodavanje". Ta vrijednost će biti -10 vrijednost koju smo postavili ranije u ponašanju Pošalji poruku na sluzavcu. Na ovaj način, ako odlučimo da drugi neprijatelji nanose različite iznose šteta, sve što trebamo učiniti je promijeniti vrijednost u emisiji na bilo koju drugu koju želimo, a zdravstvena traka će umjesto toga koristiti tu vrijednost!

Osigurajte da "Događaj na punom" bude isključen, a "Događaj na praznom" uključen. To znači da ako zdravstvena traka dosegne nula zdravlja, izvršit će sljedeće ponašanje.

IMG_0080.JPG

U odjeljku Scena odjeljka ponašanja, ispustite ponašanje Učitaj preklapanje i povežite ga na ponašanje Dodaj u zdravstvenu traku.

U postavkama Učitaj preklapanje, promijenite odabrano preklapanje na "Kraj igre" preklapanje koje se automatski pravi za vas kada napravite novi projekt.

Photo_2019-06-26__1_42_30_PM.png

Igrajte igru i probajte! Sada, kada god dođe do kontakta s sluzavcem, trebala bi se isprazniti vaša zdravstvena traka. Kada zdravstvena traka dosegne nulu, vrijeme je za kraj igre.

Photo_2019-06-26__1_42_58_PM.png

Super! Sada imamo način oštećenja igrača i gubitka igre.

Nešto se čini pomalo pogrešno, međutim. Ne pružamo mnogo povratnih informacija igraču da je pogođen osim što uklanjamo zdravlje iz zdravstvene trake.

To možemo popraviti potiskivanjem igrača i sluzavca daleko jedno od drugog, jasno dajući do znanja da su se oboje kontaktirali, kao i sprječavajući igrača da previše brzo povrijedi zdravlje sudarajući se sa sluzavcem.

Idite u editor ponašanja za sluzavca (možda će trebati prvo odabrati glavni sloj), i ispustite ponašanje Pokreni objekt unutar odjeljka Fizika. Povežite ga ispod ponašanja Pošalji poruku iz ranije i otvorite njegova svojstva.

U svojstvima, promijenite drugi objekt na oznaku "Igrač" otvaranjem kartice Oznake i odabirom "Igrač". Promijenite vrijednost sile na 200, množitelj objekta A na 0.25, a množitelj objekta B na 1.

Photo_2019-06-26__1_45_59_PM.png

Sada kada igrač dođe u kontakt sa sluzavcem, odgurit će igrača dalje od sluzavca s silom od 200 (1 × 200 silom) i sluzavac će biti odgurnut od igrača s silom od 50 (0.25 × 200 silom).

Naša igra postaje prilično dobra sada! Samo jedan problem sada je da imamo neprijateljskog sluzavca koji ne može biti ubijen i naš igrač nema način da se uzvrati. U sljedećem dijelu, implementirat ćemo način za našeg igrača da se brani.

Dio 6: Poništavanje sluzavca

Da bismo omogućili našem igraču da napadne sluzavca skakanjem na njega, morat ćemo promijeniti način na koji upravljamo sudarima tako da sluzavac ignoriše dno igrača (noge igrača) prilikom nanošenja štete.

Otvorite editor ponašanja sluzavca i dodirnite ponašanje Sudar koje smo stvorili u prethodnom dijelu vodiča. Deaktivirajte opciju "Na dnu", koja će ignorirati sudare ako sluzavac dođe u kontakt s dnom kutije za sudar igrača.

Photo_2019-06-26__1_54_25_PM.png

Sada, naš sluzavac neće povrijediti igrača ako igrač skoči na njega. Umjesto toga, želimo provesti različitu logiku kada se to dogodi.

Sa označenim događajem Sudar, duplicirajte ga i promijenite sve njegove opcije u novom ponašanju Sudar tako da bude omogućena samo opcija "Na dnu".

Photo_2019-06-26__1_54_42_PM.png

Ovo će služiti kao naš ulazni događaj kada igrač skoči na sluzavca.

Sljedeće, ispustite i povežite ponašanje Uništi objekt iz odjeljka ponašanja Objekti. Trebao bi biti već postavljen na uništiti naš objekt sluzavca po defaultu.

Photo_2019-06-26__1_54_53_PM.png

Sada kada igramo našu igru, skakanje na sluzavca ga uništava. Ali opet, kao što je to bilo s udarcem sluzavca ranije, ne osjeća se baš zadovoljavajuće.

Kao što smo učinili u prethodnom dijelu vodiča, dodajmo još jedan Pojedi objekt. Duplicirajte starije ponašanje Pojedi objekt iz logike oštećenja igrača i povežite ga ispod ponašanja Uništi objekt. Njegova svojstva mogu ostati ista kao i starijeg ponašanja Pojedi objekat.

IMG_0121.JPG

Sada, kada igramo igru, postoji lijepe zadovoljavajuće odskakanje kada skočimo na sluzavca.

IMG_0130.TRIM.GIF

Završetak & Vježbe

I to je prilično to! Oslovili smo sve stavke navede u uvodnom dijelu:

  • Umjesto hodanja, sluzavac će skakati lijevo ili desno kako bi se pomakao. Provjereno!
  • Sluzavac će skočiti u smjeru igrača. Provjereno!
  • Ako je igrač predaleko, sluzavac će se ne kretati (miruje). Provjereno!
  • Sluzavac će oduzeti zdravlje igraču pri kontaktu. Provjereno!
  • Sluzavac je poražen ako igrač skoči na njega. Provjereno!

Ako ste stigli do ovoga, sada biste trebali imati pristojno razumijevanje kako možete dati svojim neprijateljima inteligenciju, i natjerati ih da misle i donose odluke sami. Odlično!

Međutim, uvijek postoji više stvari koje se mogu učiniti. Kao vježbu, isprobajte učiniti sljedeće sami:

  1. Odvirite animaciju "pogođen/ubijen" kada igrač skoči na sluzavca.
  2. Odvirite animaciju "pogođen" za igrača kada sluzavac napadne igrača.
  3. Dodajte malo nasumičnosti koliko će daleko sluzavac skočiti svaki put.

Dovršeni projektni fajl za ovaj vodič može se pronaći ovdje: Preuzmi projekat vodiča