Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Game maker tutorial - Arkanoid

Dnes si vytvoríme hru zvanú Arkanoid. Určite vám niečo hovorí známej pinkání loptičkou do tehličiek a následné odrazenie ho od pálky aby nespadol.

Je to veľmi jednoduché: Začneme pridaním spritov.

A to síce tri sprity pálky -> veľkú, normálne a malú. Potom ešte sprite loptičky a tehličiek. Asi takto:

Game maker - Jednoduché hry
Teraz si vytvoríme objekt pálky, priradíme mu sprite bat_normal a zaškrtneme solid. Pridáme mu zatiaľ len eventy create, keyboard / left a keyboard / right. V create si vytvoríme premennú gamespeed a nastavíme jej hodnotu 10. Potom do left pridáme podmienku z control pre kontrolu voľného miesta (hneď tú prvú). Súradnice zadáme x: x - gamespeed; y: y; Poznámka: ak budete takto kontrolovať voľné miesto, môže sa stať pri zaseknutí v objekte, že funkcia bude stále vyhodnocovať miesto ako kolízny. Je lepšie teda od x-ovej súradnice vytvárať rozdiel napr. Pomocou sprite_width / 4 - čím siahnete kúsok za okraj Spritu a kolízie sa už neberie vzhľadom ku kolíznej maske a práve kolidujícímu predmetu, v ktorom je teleso zaseknuté, ale pozerá sa za neho a zisťuje či je tam voľné miesto Pod podmienku vložíme jump to position z move a súradnice budú rovnaké ako predošlé.
Game maker - Jednoduché hry
To isté urobte u right s tým že prehodíte znamienka.

Teraz si vytvorte room a pridajte niekam dole do prostredku objekt pálky a hru si vyskúšajte.

Ešte než rozhýbe loptičku tak si vytvoríme dva sprity o veľkostiach roomu 640x16 a 16x480. Dajte im treba čiernu výplň nech sou pekne vidieť.

Teraz si vytvoríme 3 objekty (obj_horizontal_up, obj_horizontal_dow­n, obj_vertical), ktorým priradíme patričný sprite, odškrtnite visible a zaškrtneme solid.

Pridáme ich do mapy (odškrtnite si delete lower).

Vytvorte si objekt ball ktorému priraďte zatiaľ len sprite a vložte ho do mapy.

Game maker - Jednoduché hry
Teraz pridáme kolízie a rozhýbe loptičku. Otvoríme si loptičku. Pridáme najprv step. Popíšem vám čo chcem urobiť. Pridáme podmienku, že ak ešte nezačala hra tak že sa loptička bude pohybovať s pálkou. Ale musíme trošku poupraviť sprity. U pálok nastavíme x na prostriedok ay na 0. U loptičky nastavíme y na dolnej hranici ax na stred.
Game maker - Jednoduché hry
Teraz už môžeme napísať do bloku púhe x = obj_bat.xay = obj_bat.ya ešte musíme zastaviť pohyb kliknutím na prostriedok v akcii štart moving in a direction.
Game maker - Jednoduché hry
Ešte pridáme kolízii so zarážkami. Horná, postranné zarážky a pálka budú mať pohé bounce au dolnej sa bude nastavovať premenná štart na 0.

Ešte pridajte event create kde nastavte premennú štart na hodnotu 0 a prepnite sa do objektu pálky. Pridajte event keyboard_keypress / space.
Do ktorého vložte zase podmienku na štart a do bloku vložte nastavenia štart na 1 a rozhýbanie loptičky do rohových strán rýchlosťou povedzme 7.

Game maker - Jednoduché hry
A keď nad tým tak rozmýšľam môžete vlastne zmazať z mapy guličku a do obj_bat do eventu create pridať akciu create inštancie obj_bat na súradniciach x, y.

Hru si vyskúšajte teraz už je to vážne pekné a môžete sa vrhnúť na tehličky.
Vytvorte preto objekt obj_stone, ktorému Nepriraďujte žiadny sprite, bude slúžiť ako rodič a zastupovať všetky ostatné tehličky (ušetrí nám veľa práce).

Do objektu obj_ball do kolízie s obj_stone pridajte zvýšenie skóre o jedna. Pod to bounce self against all objects. A ešte pridajte destroy other inštancie.

Teraz si už len popřidávejte tehličky a nastavte im patričné sprity a ako parrent vyberte obj_stone.

Tej tehličke čo má aj nakřuplí sprite vytvorte objekt do ktorého dáte kolízii s loptičkou a tam akcie score ++, bounce other against all a change inštancie into obj_stone_blu­e_damaged (v ktorom je sprite poškodeného kameňa a parrent obj_stone).

Do tehličky s krížikom (do tej čo nepôjde rozbitý) vložíme kolízii s loptičkou kam dáme akciu bounce s parametrom other a against nastavíme na all objects.

Poskladáme si tehličky do mapy a vyskúšame.

Game maker - Jednoduché hry
Už to krásne funguje :)

Do obj ball pridáme ešte kontrolu počtu tehličiek. Takže pridáme kolízii s obj_stone a úplne jednoducho sa spýtame je počet tehličiek rovný 0? Ak áno a next room exituje tak next room, ak neexistuje ukáž výslednú listinu a skonči hru. (Pridal sem bloky aby to bolo lepšie vidieť)

Game maker - Jednoduché hry
Do game štart u obj_bat pridáme set score = 0 a set lives = 3. Ešte nastavíme zobrazenie skóre a životov v caption.
Game maker - Jednoduché hry
Pridáme event no more lives a doň šou highscore tablá a end the game.

A do obj_ball do kolízie s obj_horizontal_down pridáme ešte lives--.

Teraz hru obohatíme o bonusy. Vytvoríme si objekt bonus ktorý zatiaľ encháme ladom. Poupravíme kolízii s obj_ball v objekte obj_ball. Pridáme šancu na bonus.

Game maker - Jednoduché hry
Tak a teraz sa vrhneme na obj_bonus. Do create pridáme premenou bonus ktoré nastavíme hodnotu na round (random (2)) -> vygeneruje číslo od 0-2 a zaokrúhli ho (bonusy budeme mať zatiaľ len 3): pridanie života, zmenšenie a zväčšenie pálky, neskôr si môžete pridať ďalšie.

Pridáme podmienky na premennú bonus a podľa hodnoty zmeníme sprite bonusu. A objekt rozhýbe pomocou set the vertical speed asi tak na 3.

Game maker - Jednoduché hry
Do kolízie s obj_bat pridáme akcie ktoré má bonus vykonať.
Game maker - Jednoduché hry
A hru máme hotovú. Môžete si pridať pozadie, zvuky ďalšie bonusy a levely.

Na stiahnutie priložené zdrojové súbory.


 

Stiahnuť

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

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

 

Všetky články v sekcii
Game maker - Jednoduché hry
Článok pre vás napísal David Jančík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity