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:
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é. 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_down, 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.
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. 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. 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.
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_blue_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.
Už to krásne fungujeDo 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ť)
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. 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.
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.
Do kolízie s obj_bat pridáme akcie ktoré má bonus vykonať. 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é 804x (28.2 kB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker