Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Tutoriál na tvorbu bludišťových hier 3 - Príšery a bomby

(Napísal Mark Overmars - (C) YoYo Games Ltd, pre itnetwork.cz preložil sdraco)

Príšery a ďalšie nástrahy

Hra teraz vyzerá pekne, ale stále je úplne triviálne a preto nudná. Potrebujeme pridať nejakú akciu v podobe príšer. Tiež pridáme nejaké bomby a pohyblivé bloky a diery. Kompletné hru nájdete v súbore move 3.gmk na konci článku.

Príšery

Vytvoríme 3 rôzne príšery: jedna sa pohybuje zľava doprava, jedna zhora nadol a jedna v 4 smeroch. Pridanie príšer je vlastne veľmi jednoduché. Je to objekt, ktorý sa začne pohybovať a mení svoj smer vždy, keď sa dotkne steny. Keď sa postava dotkne príšery, zomrie. To znamená, že sa level reštartuje a hráč stratí život. Do začiatku dáme postave 3 životy.

Najprv vytvorme príšeru, ktorá sa hýbe zľava doprava. Použijeme na to jednoduchý sprite a ďalej vytvoríme objekt s týmto Sprit. V create udalosti sa rozhodne, či pôjde doľava alebo doprava. Aby sme trochu skomplikovali život, nastavíme rýchlosť o niečo vyššia. Pri kolízii sa prehodí horizontálnej smer.

Druhá príšera funguje úplne rovnako, ale tentoraz začína pohyb nahor alebo nadol a keď sa dotkne steny, prevrátime vertikálnu rýchlosť.

Tretia príšera je pomerne komplikovaná. Pohyb začína vertikálnym alebo horizontálnym smerom. Keď sa dotkne steny, pozrie sa, či sa môže otočiť doľava alebo doprava. Keď oboje zlyhá, prevráti svoj smer. Vyzerá to takto:

Umelá inteligencia príšery - Game maker - Bludišťovky

Aby sme obišli problém, že je príšera príliš malá, vypneme preceise collision checking a masku nastavíme na bounding box a full image.

Keď postava koliduje s príšerou, musime prehrať nejaký horzný zvuk, chvíľu počkať, znížiť počet životov o jeden a reštartovať miestnosť. (Poradie je kľúčové. Ak miestnosť reštartujeme, ďalšie akcie sa už neuskutočnia.) Kontrolné objekt v udalosti no more lives (žiadne ďalšie životy) ukáže high-score a reštartuje hru.

Životy

Používali sme mechanizmus Game Makeru, aby sme dali hráči 3 životy. Bolo by pekné ukázať aj počet životov. Objekt kontrolér to vie urobiť rovnakým spôsobom, ako sa score. Ale je krajšie, keď naozaj vidíte malé obrázky postavy ako životy. Je k tomu akcie v záložke score. Drawing udalosť vyzerá takto:

vykreslenie počtu životov - Game maker - Bludišťovky

Všimnite si, že sme použili font pre zobrazenie score.

Bomby

Budeme klásť bomby a spúšte. Idea je taká, že keď sa hráč dostane ku spúšti, všetky bomby vybuchnú a zničia všetko v ich okolí. Toho môže byť využité pri robení dier do znie a zabíjanie príšer. Budeme potrebovať 3 nové objekty: spúšť, bombu a explózii. Pre každý potrebujeme príslušný sprite.

Bomba je extrémne jednoduchá. Proste tam sedí a nič nerobí. Aby sme zaistili, že príšery budú chodiť cez ňu, nastavíme jej depth na 10. Instance objektov sú vykresľované poporiadku, podľa depth. Tie s vyššou depth sú vykreslené skôr, takže sú za inštanciami s menšou depth. Nastavením depth bomby na 10 sa ostatné objekty s depth 0 zobrazí pred ňou.

Spúšť je tiež celkom jednoduchá. Keď koliduje s postavou, zmení všetky Bumba v explózie. To docielime pomocou akcie Change an object in another object. Navrchu zvolíme, že sa to má týkať všetkých bômb.

odpálenie bômb - Game maker - Bludišťovky

Objekt explózia jednoducho zobrazí animáciu. Po animáciu sa zničí (Musíme byť opatrní, aby bola explózia správne zarovnaná na bombu). Objekt tiež musí zničiť všetko, čo sa ho dotýka. To si vyžaduje trochu práce. Ako prvý určite nechceme, aby explózia zničila sama seba, preto ju dočasne posunieme preč. Potom použijeme akcie Destroy all instances at a position okolo staré pozície explózie. Nakoniec vrátime explózii späť na svoje pôvodné miesto.

explózia bomby - Game maker - Bludišťovky

Všimnite si, že to moc nefunguje, keď je postava vedľa bomby! Preto sa uistite, že spúšte nie sú vedľa bômb. Je dôležité levely s bombami a spúšťami navrhovať opatrne, aby prinášali pre hráčov zaujímavé výzvy.

Bloky a diery

Vytvorme niečo iné, vďaka čomu budú hádanky viac komplikované. Vytvoríme bloky, ktoré bude môcť hráč posúvať. Tiež vytvoríme diery, ktoré hráč nemôže prejsť, ale po vyplnení blokom vytvorí hráči novú cestu. Toto nám otvára nové možnosti. Bloky môžu byť posúvané v určitom smere pre vytvorenie priechodov. A pomocou blokov tiež môžete chytať príšery.

Blok je pevný objekt (solid). Hlavný problém je, že musí kopírovať pohyb postavy, keď je tlačený. Keď koliduje s postavou, vykonáme nasledujúce akcie: otestujeme, či je relatívna pozícia 8 * other.hspeed, 8 * other.vspeed prázdna. Toto je pozícia, na ktorú by mohol byť blok posunutý. Ak je prázdna, presunieme tam blok. To isté urobíme, pokiaľ je na tejto pozícii diera. Aby sme zabránili príšerám prechádzať blokom, nastavíme mu ako parrent roh múru. Avšak to nám vytvorí malý problém. Pretože len tu udalosť kolízie, ktorá je definovaná medzi postavou a rohom múru, je udalosť spustená a zastaví postavu. To nie je to, čo by sme chceli. Aby sme toto vyriešili, dáme do objektu postavy do udalosti kolízie s blokom falošnou akciu. Teraz bude pri kolízii spustená len táto udalosť, ktorá nezastavuje postavu. (Aby sme boli presní, nová udalosť kolízie prepíše udalosť kolízie parent objektu) Ako už bolo povedané, môžete tak dávať potomkom trochu iné vlastnosti, než majú ich parrent objekty).

Diera je pevný objekt (solid). Pri kolízii s blokom zničí seba i blok. Tiež ju nastavíme ako parrent roh múru, aby sa správala ako múr.

S bloky a dierami môžete vytvoriť mnoho zaujímavých miestností. Je tu však malý problém. Môžete sa totiž jednoducho zablokovať a miestnosť sa stane neriešiteľnou. Musíme dať hráči možnosť level reštartovať za cenu jedného života. Za týmto účelom použijeme kláves R. V kontroleru v udalosti pre túto klávesu jednoducho odčítame jeden život a reštartujeme miestnosť.

Tým sme dokončili našu tretiu verziu bludisko. Teraz máme veľa prostriedkov pre tvorbu zaujímavých levelov.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 404x (382.29 kB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker

 

Všetky články v sekcii
Game maker - Bludišťovky
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity