Cum să creezi inteligență artificială pentru un slime inamic | hyperPad Documentation

Loading...

Logo

IMG_0139.TRIM.GIF

Notă: Un fișier de proiect complet pentru acest tutorial poate fi găsit la finalul acestui articol.

Introducere

În acest tutorial, vom crea inteligența artificială (IA) pentru un slime inamic convingător pentru un joc de tip platformă. Vom acoperi unele funcții și comportamente mai avansate în hyperPad, așa că acest tutorial presupune cunoștințe de bază despre editorul hyperPad. Dacă credeți că trebuie să vă familiarizați mai mult cu crearea unui joc de la zero, puteți verifica tutorialul Ghidul complet - Crearea unui joc de tip platformă mai întâi.

Pentru a face slime-ul să pară „inteligent”, acesta ar trebui să facă mai mult decât să se miște înainte și înapoi și ar trebui să fie oarecum conștient de împrejurimile sale.

Sună interesant! Dar înainte de a începe, ar trebui mai întâi să detaliem cum ar trebui să se comporte slime-ul inamic:

  • În loc să meargă, slime-ul va sări la stânga sau la dreapta pentru a se mișca.
  • Slime-ul va sări în direcția jucătorului.
  • Dacă jucătorul este prea departe, slime-ul nu se va mișca (inactiv).
  • Slime-ul va lua sănătatea jucătorului la contact.
  • Slime-ul este învins dacă jucătorul sare pe el.

Acum că știm ce vrem să facem, să începem!

Partea 1: Configurarea Proiectului

În acest tutorial, vom începe un nou proiect de la zero pentru a păstra lucrurile simple. Creați un proiect nou și setați-l pe „Vedere laterală”, puteți lăsa celelalte setări ca valori implicite.

Cu proiectul dvs. nou creat, accesați Biblioteca de Active și obțineți „Pachet de pornire pentru platformere” de la hyperPad din magazinul de active. (Este gratuit!)

a7JUWwiO.jpg

Photo_2019-06-26__1_15_13_PM.png

Acum că avem câteva active cu care să lucrăm, mergeți înainte și plasați câteva blocuri de pământ și creați-vă lumea. Dacă nu sunteți deja acolo, accesați Biblioteca de Active și atingeți „Descărcări”, apoi „Pachet de pornire pentru platformere”.

În imaginea de mai jos, câteva blocuri de pământ (folderul „Grass World”) au fost plasate, iar un fundal (folderul „Backgrounds”) a fost setat.

Photo_2019-06-26__1_16_22_PM.png

Acum că avem o scenă frumoasă cu care să lucrăm, să adăugăm obiectele Jucător și Slime. Mergeți la Biblioteca de Active și deschideți folderul „Descărcări”, apoi folderul „Pachet de pornire pentru platformere”, dacă nu sunt deja deschise.

Vom folosi „Spaceman verde” ca jucător, așa că atingeți activul spaceman verde pentru a vedea toate ciclurile sale de animație. În mod implicit, vrem ca jucătorul să stea pur și simplu, așa că atingeți animația „Stau” și plasați-o pe scenă.

În același folder din Biblioteca de Active, există și un personaj animat „Slime roz”. Perfect pentru a-l folosi ca inamic slime! Atingeți activul slime și alegeți animația „Move” și plasați un slime pe scena dvs. alături de personajul jucător.

Photo_2019-06-26__1_17_03_PM.png

Până acum, a fost bine! Avem acum obiectul jucător și obiectul slime, gata de utilizare. Dar, dacă am juca proiectul nostru acum, nu am putea interacționa cu jocul deloc. Așa că va trebui să creăm ceva logică pentru a aduce viață jocului nostru.

Partea 2: Controalele Jucătorului

Înainte de a putea lucra la oferirea de viață inamicului nostru slime, ar trebui mai întâi să avem unele controale pentru spacemanul verde.

Atingeți spacemanul verde și setați modul său de fizică din Perete în Fizic, ceea ce va permite jucătorului să se miște liber. Apoi, atingeți butonul „Comportamente” pentru a deschide editorul de comportamente pentru personajul nostru jucător, astfel încât să putem adăuga câteva controale.

IMG_0054.JPG

În editorul de comportamente pentru personajul nostru jucător, ar trebui să aveți deja un comportament singuratic Redare animație. Putem lăsa acel comportament așa, dar putem să-i oferim câțiva prieteni.

Sub secțiunea Interacțiune, plasați un comportament Controlat cu joystickul și un comportament Sari cu butonul. Cu aceste comportamente, acum jucătorul nostru este pregătit să fie controlat. Dar îi lipsește o animație.

Atingeți comportamentul Controlat cu joystickul și setați „Animația joystickului la stânga” la ciclul de animație „Merge” din activul Spaceman verde. Faceți același lucru cu „Animația joystickului la dreapta”.

Photo_2019-06-26__1_18_28_PM.png

Acum personajul nostru jucător merge, dar încă nu se animă atunci când sare.

Atingeți comportamentul Sari cu butonul și schimbați atât „Animația căderii”, cât și „Animația săriturii” la ciclul de animație „Sari”.

Photo_2019-06-26__1_18_56_PM.png

Dacă jucăm jocul nostru acum, ne putem mișca și sări! Următoarea etapă, putem începe să lucrăm la inamicul nostru slime.

Photo_2019-06-26__1_19_50_PM.png

Partea 3: Mișcarea Slime-ului

Așa cum am detaliat în secțiunea de introducere a acestui tutorial, vrem ca slime-ul nostru să sară în direcția jucătorului. Pentru a face acest lucru, slime-ul nostru trebuie să știe unde se află jucătorul în lume. Din acest motiv, ar trebui să adăugăm un Tag personajului nostru jucător, astfel încât comportamentele noastre să poată recupera personajul jucător în orice scenă.

Atingeți personajul jucător și selectați fila Tag-uri din partea de jos a vizualizării proprietăților. Tastați „Jucător” în câmpul text din partea de sus a meniului tag-urilor și apăsați pe butonul adăugați (+) de lângă acesta. Acum personajul nostru jucător este etichetat cu tag-ul „Jucător”.

Photo_2019-06-26__1_23_06_PM.png

Similar cu ceea ce am făcut cu personajul jucător, atingeți slime-ul și setați modul său de fizică din Perete în Fizică. Apoi, atingeți butonul Comportamente pentru a deschide editorul de comportamente al slime-ului.

IMG_0058.JPG

În editorul de comportamente, accesați secțiunea Personalizat și plasați un comportament Timer în editor.

Atingeți comportamentul Timer și setați intervalul la 2 secunde.

Photo_2019-06-26__4_21_59_PM.png

Acesta va fi începutul logicii pentru inteligența artificială a slime-ului nostru.

Ideea aici este că la fiecare 2 secunde, slime-ul nostru va „gândi” ce să facă în continuare, cum ar fi: Ar trebui slime-ul să sară? Dacă decide să sară, în ce direcție ar trebui să sară?

Apoi, mergeți la secțiunea Transformare și plasați un comportament Obține poziția. Atingeți-l și setați ținta sa la tag-ul „Jucător” pe care l-am creat anterior, atingând fila Tag-uri din partea de jos a vizualizării proprietăților sale și selectând „Jucător”. Acum conectați Timer-ul la comportamentul Obține Poziția.

Photo_2019-06-26__4_22_22_PM.png

Acum știm unde se află jucătorul în lume! Pentru a determina dacă jucătorul este la stânga sau la dreapta slime-ului, trebuie să știm, de asemenea, unde se află slime-ul în lume.

Trageți un alt comportament Obține poziția în editor. În mod implicit, comportamentul vizează deja slime-ul nostru, așa că nu trebuie să facem altceva decât să-l conectăm la ramura logică. Mergeți înainte și conectați Obține Poziția pentru jucător la Obține Poziția pentru slime.

Photo_2019-06-26__4_22_40_PM.png

Opțional: Pentru a face lucrurile mai ușor de înțeles, mi-am redenumit comportamentele Obține Poziția pentru a indica clar ce urmăresc: „Obține Poziția Jucător” și „Obține Poziția Slime”. Aceasta este opțională, dar dacă doriți să schimbați numele comportamentelor, puteți face acest lucru atingând comportamentul și atingându-i numele din partea de sus a vizualizării proprietăților.

Până acum, avem ca fiecare 2 secunde, slime-ul recuperează poziția personajului jucător și a sa. Acum că avem aceste informații, putem determina dacă slime-ul ar trebui să sară la stânga sau la dreapta.

Sub tab-ul Logică, plasați și conectați un comportament Dacă. În proprietățile sale, setați prima valoare la poziția pe axa x a primului Obține Poziție („Tag Jucător”) prin tragerea valorii de ieșire a comportamentului în câmpul din proprietățile Dacă. Pentru a doua valoare, setați-o la poziția pe axa x a celui de-al doilea Obține Poziție (slime). În cele din urmă, setați condiția comportamentului Dacă la „Este mai mic decât” (<).

Notă: Poziția pe axa x a unui obiect este valoarea care reprezintă locul în care se află obiectul în lume pe axa sa x. (Stânga și dreapta)

IMG_0061.JPG

Așadar, ce înseamnă toate acestea? Comportamentul Dacă va verifica dacă poziția pe axa x a jucătorului este mai mică decât poziția pe axa x a slime-ului. Dacă cele de mai sus sunt adevărate, atunci va executa următorul comportament conectat. Ce înseamnă, în esență, este că, dacă jucătorul se află mai la stânga decât slime-ul, atunci execuția comportamentului va continua.

Următorul, acum avem setată logica pentru ca slime-ul să sară la stânga, așa că să facem exact asta!

Sub secțiunea Fizică, plasați și conectați un comportament Aplică Forță la comportamentul Dacă. În proprietățile sale, setați Forța la: x = -0.5, y = 1. Apoi, setați multiplicatorul la un număr considerabil, 200 ar trebui să fie suficient.

Photo_2019-06-26__1_28_06_PM.png

Acum, ce avem este că, dacă slime-ul găsește jucătorul mai departe la stânga decât el, va sări în sus (y = 1 × 200) și puțin la stânga (x = -0.5 × 200).

Încercați! Jucați jocul și verificați pentru a vă asigura că totul funcționează. Ce ar trebui să vedeți este slime-ul sărind la stânga la fiecare 2 secunde, atâta timp cât jucătorul se află la stânga lui. Dacă mutați jucătorul la dreapta slime-ului, ar trebui să înceteze să sară până când îl mutați din nou la stânga.

Photo_2019-06-26__1_28_50_PM.png

Notă: Dacă slime-ul dvs. nu se mișcă, parcurgeți pașii anteriori pentru a vă asigura că nu ați omis nimic. Asigurați-vă că comportamentele sunt conectate corect și că modul de fizică al slime-ului este setat la Fizică (mobil) în loc de Perete (non-mobil). De asemenea, în curând vom remedia problema în care slime-ul uneori se răstoarnă sau devine cu susul în jos.

Progres excelent până acum! Dacă slime-ul dvs. sare așa cum era de așteptat, atunci suntem gata să continuăm. Să finalizăm comportamentele de mișcare ale slime-ului permițându-i să sară și la dreapta.

Înapoi în editorul de comportamente al slime-ului, duplicate comportamentul Dacă. Trageți și fixați noul comportament Dacă la dreapta comportamentului original Dacă. Acest lucru îl va transforma într-un comportament „Altfel Dacă”.

De asemenea, duplicați comportamentul Aplică Forță și conectați-l la noul comportament Altfel Dacă.

În proprietățile Else If, schimbați condiția din „Este mai mic decât” (<) în „Este mai mare decât” (>). Acest lucru va avea efectul opus celui de la primul Dacă. Dacă comportamentul primul Dacă nu este adevărat, va verifica atunci dacă Altfel Dacă este adevărat în schimb. Asta înseamnă că, dacă jucătorul nu este la stânga slime-ului, va verifica dacă jucătorul este la dreapta slime-ului și va continua să execute comportamentele conectate la Else If în schimb.

Ar trebui să aveți acum o ramură de comportamente care arată cam așa:

Photo_2019-06-26__1_30_01_PM.png

În al doilea Aplică Forță (sub Else-If), schimbați proprietățile sale astfel încât forța să fie x = 0.5, în loc de x = -0.5. Acum, în loc să sară la stânga, slime-ul va sări la dreapta.

Photo_2019-06-26__1_30_05_PM.png

Jucați proiectul și încercați din nou! Acum ar trebui să vedeți slime-ul sărind în funcție de direcția jucătorului. Excelent!

Un lucru pe care l-ați putea observa în timp ce testați jocul este că, dacă colidează cu slime-ul, acesta poate cădea uneori pe partea sa sau se poate întoarce cu susul în jos. Vrem ca slime-ul să rămână în poziție verticală, așa că haideți să rezolvăm asta rapid.

Înapoi în editorul de comportamente al slime-ului, accesați secțiunea comportamentelor de Transformare și plasați un comportament Blochează Rotatia în editor. Fără a fi nevoie să-l conectați la un alt comportament, dorim să blocheze rotația de îndată ce slime-ul este creat, așa că puteți să-l lăsați așa cum este. Odată ce ați terminat, încercați din nou jocul. Acum ar trebui să aveți o dificultate mai mare în a încerca să răsturnați slime-ul pe partea sa.

Photo_2019-06-26__1_32_26_PM.png

Ați putea observa, de asemenea, că animația slime-ului se redă prea repede. Dacă se întâmplă asta, atingeți comportamentul Redare animație în editorul de comportamente al slime-ului și schimbați Cadrele pe secundă la un număr mult mai mic. 6 cadre pe secundă arată destul de bine.

Photo_2019-06-26__1_38_22_PM.png

Foarte bine! Acum slime-ul nostru nu se mișcă doar bine, ci arată și grozav. În mare parte, logica de mișcare pentru slime-ul nostru este completă.

Cu toate acestea, mai vrem ca slime-ul să sară doar dacă jucătorul se află aproape. Astfel, dacă construim o lume mai mare, slime-urile aflate departe nu vor încerca imediat să sară spre și să atace jucătorul. În partea următoare, ne vom uita la adăugarea unei alte condiții pentru a bloca logica săriturii dacă jucătorul este prea departe.

Partea 4: Slime Inactiv

În această parte, vom implementa câteva comportamente pentru slime care îl vor face inactiv (adică, să nu se miște) atunci când jucătorul este prea departe.

Pentru a realiza acest lucru, trebuie să găsim o modalitate de a măsura distanța de la slime la jucător. Convenabil, există comportamente disponibile pentru a face tocmai asta! Să ne apucăm de lucru.

Deschideți editorul de comportamente al slime-ului și plasați un comportament Calculează Distanța din secțiunea Logică. În proprietățile comportamentului său, primul obiect este deja setat pe slime-ul nostru. Pentru al doilea obiect, mergeți la meniul Tab-uri și selectați tag-ul „Jucător”.

Photo_2019-06-26__1_48_54_PM.png

Acest comportament, atunci când este executat, va calcula distanța în metri de la slime la jucător. Folosind aceste informații, putem vedea dacă jucătorul este prea departe, verificând dacă depășește o anumită distanță.

Puneți un alt comportament Dacă din secțiunea Logică și conectați-l sub comportamentul Calculează Distanța. În proprietățile comportamentului Dacă, setați prima valoare la valoarea de ieșire a comportamentului Calculează Distanța. Setați condiția la „Este mai mic decât” și a doua valoare la 15.

Acum, ceea ce avem este o modalitate de a verifica dacă jucătorul este prea departe, văzând dacă distanța dintre slime și jucător este mai mică de 15 (metri). Dacă acea condiție este falsă, înseamnă că jucătorul este prea departe și comportamentul Dacă nu va executa următorul comportament.

IMG_0085.JPG

Acum că avem noua condiție pregătită pentru utilizare, deconectați comportamentul Obține Poziția (slime) și vechiul comportament Dacă din partea anterioară a tutorialului și faceți puțin loc pentru noua noastră condiție. Puteți deconecta comportamentele atingând și menținând conexiunile dintre comportamente.

Cu noua condiție de distanță în place, conectați Obține Poziția (slime) la comportamentul Calculează Distanța, apoi conectați noul comportament Dacă la vechiul comportament Dacă. Ar trebui să aveți acum ceva de genul:

Photo_2019-06-26__1_50_57_PM.png

Încep să arate destul de complicat acum, dar ideea este relativ simplă. Acum, ceea ce avem este că înainte de a verifica în ce direcție ar trebui să sară slime-ul, mai întâi verificăm dacă distanța dintre slime și jucător este mai mică de 15 (metri).

Dacă jucătorul se află mai aproape de 15 metri, atunci va continua și va verifica în ce direcție ar trebui să sară, ca de obicei. Dacă jucătorul se află la mai mult de 15 metri distanță, nu continuăm, iar logica se oprește acolo până data viitoare când slime-ul gândește din nou (peste 2 secunde).

Încercați jocul! Dacă te apropii prea mult de slime, ar trebui să înceapă să sară spre tine, dar dacă te îndepărtezi prea mult ar trebui să se oprească din mișcare și să aștepte până te apropii din nou.

Slime-ul nostru încep să arate destul de amenințător acum, dar îi lipsește totuși o modalitate de a provoca daune jucătorului. În partea următoare a acestui tutorial, îi vom da jucătorului o bară de sănătate și vom implementa o logică de a provoca daune.

Partea 5: Atacarea Jucătorului

Așa cum a fost detaliat în secțiunea de introducere, vom implementa atacuri slime prin a face slime-ul să rănească jucătorul atunci când se atinge de jucător. Pentru a începe implementarea unei modalități de a ataca jucătorul, mai întâi trebuie să-i oferim jucătorului puțină sănătate.

În editorul principal, selectați layer-ul UI al Scenei și creați un obiect nou folosind butonulObiecte speciale. Atingeți „Bară de sănătate” pentru a crea o bară de sănătate pentru jucătorul nostru.

IMG_0120.JPG

Pentru că este plasată pe layer-ul Scenei UI, dacă alegem să extindem lumea noastră și să facem ca ecranul să urmeze jucătorul, va rămâne în aceeași poziție pe ecran.

Puteți să o plasați oriunde doriți pe ecran. Eu am plasat-o în centrul ecranului, aproape de partea de jos.

Photo_2019-06-26__1_39_49_PM.png

Când ați terminat de găsit un loc bun pentru bara de sănătate, putem începe să lucrăm pentru a îndepărta sănătatea din bara de sănătate. Revenți în layer-ul Principal, unde se află slime-ul și deschideți din nou editorul de comportamente.

Într-un loc frumos gol din comportamentele slime-ului, plasați un comportament Colidat găsit sub secțiunea Obiect. În proprietățile sale, setați al doilea obiect la tag-ul „Jucător”.

Photo_2019-06-26__1_38_54_PM.png

Sub secțiunea comportamentelor Personalizate, plasați un comportament Transmitere Mesaj și conectați-l sub comportamentul Colidat. În proprietățile comportamentului Transmitere Mesaj, setați Cheia Eveniment la „jucător rănit”, și setați valoarea la -10.

Amintiți-vă: Cheile evenimentelor sunt sensibile la majuscule! Din simplificare, acest tutorial va folosi litere mici pentru cheile evenimentelor. Puteți alege să folosiți litere mari dacă preferați, dar asigurați-vă că vă amintiți ce litere sunt mari pentru mai târziu.

Photo_2019-06-26__1_41_06_PM.png

Acum avem o modalitate de a detecta când jucătorul ar trebui să piardă sănătate. Când jucătorul colidează cu slime-ul, un mesaj pentru evenimentul „jucător rănit” va fi difuzat cu o valoare de -10. Vom folosi -10 pentru a spune barei de sănătate să „adauge” -10 sănătate și, deoarece valoarea este negativă, va elimina 10 sănătate.

Încă trebuie să adăugăm acea logică la bara de sănătate, așa că să facem asta acum. Ieșiți din editorul de comportamente pentru slime, apoi în editorul principal atingeți layer-ul Scenei UI, apoi atingeți bara de sănătate. Deschideți editorul de comportamente pentru bara de sănătate.

În editorul de comportamente al barei de sănătate, plasați un Primește Mesaj din secțiunea Personalizată. În proprietățile sale, setați Cheia Eveniment la „jucător rănit”. (Amintiți-vă că este sensibilă la majuscule!)

Photo_2019-06-26__1_40_12_PM.png

Acest comportament va fi ascultătorul nostru pentru mesajul „jucător rănit” trimis ori de câte ori jucătorul lovește slime-ul. Când acest comportament detectează un mesaj difuzat pentru „jucător rănit” oriunde în joc, acesta va executa.

Acum, adăugați un comportament Adaugă la Bara de Sănătate sub secțiunea UI și conectați-l sub comportamentul Primește Mesaj.

În proprietățile Adaugă la Bara de Sănătate, trageți valoarea de ieșire din Primește Mesaj în câmpul „Valoare de adăugat”. Acea valoare va fi valoarea -10 pe care am setat-o anterior în comportamentul Transmitere Mesaj de pe slime. În acest fel, dacă alegem să facem alți inamici să provoace cantități diferite de daune, tot ce trebuie să facem este să schimbăm valoarea în transmisie la ceea ce ne dorim și bara de sănătate va folosi acea valoare în schimb!

Asigurați-vă că „Eveniment complet” este dezactivat și „Eveniment gol” este activat. Aceasta înseamnă că dacă bara de sănătate atinge zero sănătate, va executa următorul comportament.

IMG_0080.JPG

Sub secțiunea Scena , plasați un comportament Încărcați Overlay și conectați-l la comportamentul Adaugă la Bara de Sănătate.

În setările Încărcați Overlay, schimbați overlay-ul selectat la overlay-ul „Game Over” care este creat automat pentru dvs. atunci când creați un nou proiect.

Photo_2019-06-26__1_42_30_PM.png

Jucați jocul și încercați! Acum, ori de câte ori intrați în contact cu slime-ul, ar trebui să vă dreneze bara de sănătate. Când bara de sănătate ajunge la zero, e game over.

Photo_2019-06-26__1_42_58_PM.png

Cool! Acum avem o modalitate de a provoca daune jucătorului și de a pierde jocul.

Ceva pare puțin în neregulă, totuși. Nu oferim mult feedback jucătorului că au fost loviți, în afară de a elimina sănătatea din bara de sănătate.

Putem remedia acest lucru propulsând jucătorul și slime-ul unul de celălalt, făcând foarte clar că au intrat în contact, precum și împiedicând jucătorul să sufere daune prea repede prin ciocnirea rapidă cu slime-ul.

Mergeți la editorul de comportamente pentru slime (s-ar putea să trebuiască să selectați terlebih layer-ul Principal mai întâi) și plasați un comportament Propulsionează Obiectul sub secțiunea Fizică. Conectați-l sub comportamentul Transmitere Mesaj de mai devreme și deschideți proprietățile sale.

În proprietăți, schimbați al doilea obiect la tag-ul „Jucător” deschizând fila Tag-uri și selectând „Jucător”. Schimbați valoarea Forței la 200, Multiplicatorul Obiectului A la 0.25 și Multiplicatorul Obiectului B la 1.

Photo_2019-06-26__1_45_59_PM.png

Acum, când jucătorul colidează cu slime-ul, va împinge jucătorul înapoi de la slime cu o forță de 200 (1 × 200 forță) și slime-ul va fi împins departe de jucător cu o forță de 50 (0.25 × 200 forță).

Jocul nostru începe să simtă bine acum! Singura problemă acum este că avem un slime invincibil și jucătorul nostru nu are nicio modalitate de a-l înfrunta. În partea următoare, vom implementa o modalitate pentru jucătorul nostru de a contracara.

Partea 6: Defeating the Slime

Pentru a permite jucătorului nostru să atace slime-ul sărind pe el, va trebui să schimbăm modul în care gestionăm coliziunea, având slime-ul să ignore partea de jos a jucătorului (picioarele jucătorului) atunci când provoacă daune.

Deschideți editorul de comportamente pentru slime și atingeți comportamentul Colidat pe care l-am creat în partea anterioară a tutorialului. Dezactivați opțiunea „Pe Fund”, care va ignora coliziunile dacă slime-ul lovește partea de jos a căsuței de coliziune a jucătorului.

Photo_2019-06-26__1_54_25_PM.png

Acum, slime-ul nostru nu va răni jucătorul dacă jucătorul sare pe el. În schimb, dorim să executăm o logică diferită atunci când se întâmplă asta.

Cu evenimentul Colidat selectat, duplicati-l și inversați toate opțiunile din noul comportament Colidat, astfel încât doar evenimentul „Pe Fund” să fie activat.

Photo_2019-06-26__1_54_42_PM.png

Asta va servi ca punctul nostru de intrare atunci când jucătorul sare deasupra slime-ului.

Următorul, plasați și conectați un comportament Distruge Obiectul din secțiunea comportamentelor Obiect. Ar trebui să fie deja setat să distrugă obiectul nostru slime în mod implicit.

Photo_2019-06-26__1_54_53_PM.png

Acum, când jucăm jocul nostru, sărind pe slime-l distruge acestuia. Dar, din nou, așa cum s-a întâmplat cu a fi lovit de slime anterior, nu se simte foarte satisfăcător.

La fel cum am făcut în partea anterioară a tutorialului, să adăugăm din nou un Propel Obiect. Duplicati comportamentul mai vechi de Propel Obiect din logica de daune a jucătorului și conectați-l sub comportamentul Distruge Obiectul. Proprietățile sale de la comportamentul mai vechi de Propel Obiect pot rămâne neschimbate.

IMG_0121.JPG

Acum, când jucăm jocul, există un frumos sărit satisfăcător atunci când sărim pe slime.

IMG_0130.TRIM.GIF

Concluzie & Exerciții

Și cam asta e! Am verificat toate punctele din secțiunea de introducere:

  • În loc să meargă, slime-ul va sări la stânga sau la dreapta pentru a se mișca. Verificat!
  • Slime-ul va sări în direcția jucătorului. Verificat!
  • Dacă jucătorul este prea departe, slime-ul nu se va mișca (inactiv). Verificat!
  • Slime-ul va lua sănătatea jucătorului la contact. Verificat!
  • Slime-ul este învins dacă jucătorul sare pe el. Verificat!

Dacă ați ajuns până aici, ar trebui să aveți acum o înțelegere decentă a modului în care puteți oferi inamicilor dvs. inteligență, făcându-i să gândescș și să ia decizii pe cont propriu. Bine făcut!

Cu toate acestea, există întotdeauna mai multe lucruri care pot fi făcute. Ca exercițiu, încercați să faceți următoarele singuri:

  1. Redați o animație „lovit/moarte” slime atunci când slime-ul este sărit de jucător.
  2. Redați o animație „lovit” pentru jucător atunci când slime-ul atacă jucătorul.
  3. Adăugați puțină aleatoritate în cât de departe va sări slime-ul de fiecare dată.

Un fișier de proiect complet pentru acest tutorial poate fi găsit aici: Descarcă Proiectul Tutorial