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 - Pong!

Vytvoříme si jednoduchou pinkací hru s míčkem zvanou Pong pro dva hráče.

Vytvořte objekt obj_controler a nechte jej zatím ležet.

Nejprve přidáme obrázek (sprite) -> ikonka červeného pacmana ze složky game makeru pálku otočenou (vysící svisle dolů). Pojmenujeme jej spr_bat.

Nyní vytvoříme objekt (modrá koule). Pojmenujeme jej obj_bat_one a přiřadíme mu patřičný sprite.

Vytvoříme další objekt obj_ball kterému přiřadíme další ze spritů ze složky gm který vycentrujeme klepnutím na tlačítko (center).

Přepneme se zpět do objektu pálky (bat) a přidáme event kolizi s míčkem. Do níž umístíme akci bounce GameMaker - Jednoduché hry applies to other against all objects

Nyní klepneme na objekt pálky pravým tlačítkem a zvolíme duplikovat vytvoříme bat_two.

Nyní přidáme eventy aby se pálky pohybovali. Začneme otevřenou dvojkou. Přidáme eventy keyboard/UP a kb/DOWN.

Přidáme akci set horizontal speed GameMaker - Jednoduché hry a jako rychlost u UP nastavíme -7 a u DOWN 7

To samé uděláme u první s tím že tam budou eventy W a S.

Do míčku přidejte událost create a do ní start moving in a direction GameMaker - Jednoduché hry kde poklepejte na šipečky v rozích a speed dejte tak 10.

Vytvořte si room do kterého naproti sobě umístěte pálky a doprostřed míček.

Zkuste si hru spustit.

Zjistíte hlavni nedostatky. Jako první opravíme pohyb pálek. Přidejte event release (W,S,down,up) kde nastavte horizontální rychlost na 0.

Teď by to ještě celkem chtělo aby se míček od krajů odrážel a pálky nemohli odcestovat.

Vytvořte si proto dva černé obdélníčky o rozměrech 16x480 (WxH) a 640x16 (WxH).

A nyní tři objekty kterým nastavíme solid a přidělíme jim tyto sprity. A sice jeden objekt -> zarážka která bude nahoře a dole a bude pouze zastavovat pálky a odrážet míček. A dva objekty z nichž jeden bude za jednou a druhý za druhou pálkou budou počítat skóre a resetovat míček na defaultní pozici.

Takže třeba obj_horizontal dáme do něj horizontální zarážku, zaškrtneme solid a odškrtneme visible. Přidáme kolizi s míčkem kde dáme bounce other all objects. A kolizi s pálkama kde dáme hned první ikonku z move (moving in a direction) klepneme na prostředek (čtvereček) a potvrdíme.

Vytvoříme obj_vertical_left kterému přidáme kolizi s míčkem kde použijeme akci set variable GameMaker - Jednoduché hry z control.

Vyberte applies to obj_controler. variable napište bat_two_score, do value napište 1 a zaškrtněte relative. Pak se přepněte na záložku move a z jump vyberte jump to start applies to other

Nyní objekt zduplikujte pojmenujte jej obj_vertical_right a v set variable přejmenujte proměnou na bat_one

Nyní zarážky umístěte do mapy (nezapomeňte jim vypnout visible aby nebyly vidět).

Pro pohodlnější usazování vypněte Delete underlying které maže objekty které kolidují se současně pokládaným objektem.

Hru si vyzkoušejte.

GameMaker - Jednoduché hry

Nyní se vrhneme na controler.

Do eventu create umístěte dvě akce set variable bat_one a bat_two.

Nyní přidejte event draw a ze stejnojmenné záložky vybereme draw text (modré A) jako text napište třeba Player 1 -> potvrďte. Nyní se přepněte do záložky control a vlevo dole vyberte draw variable kde napište bat_one.

Nyní ještě přidejte to samé s tím rozdílem že tam bude Player 2 -> a bat_two.

Pak text od oka napozicujte a controler vložte někam do mapy třeba vlevo do rohu (pozor na delete underlying)

Pak si hru vyzkoušejte

Ještě trošku promakáme controler.

Do create přidejte proměnou time a nastavte ji na 1.

Do stepu dejte test variable a napište
variable: time
value: 0
operation: larger than

Nyní přidejte bloky a do nich z main2 sleep na 1000 pak zmenšete hodnotu time o 1.

GameMaker - Jednoduché hry

Do draw přidejte ještě vykreslení textu x -> (room_width / 2) - 50, y room_height / 2.

Můžete si přidat font a nastavit mu větší velikost nebo i jinačí face. Poté jej aplikujete před draw the value of var. time přidáním set font. Pak si ale musíte vytvořit další font kde bude výška zase normální jinak se vám budou všechny texty vykreslovat tímto fontem.

A ještě to chce přidat podmínku if time is larger than 0 aby se nevykreslovala furt.

GameMaker - Jednoduché hry

Poté ještě přidejte do kolize s ball ve vertikálních zarážkách set variable time to 1 applies to obj_controler.

Hru si vyzkoušejte.

Můžete si hru vylepšit přidáním pozadí, hudby, popřípadě doplňte o své vlastní nápady.

GameMaker - Jednoduché hry

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 930x (14.94 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

Všechny články v sekci
GameMaker - Jednoduché hry
Článek pro vás napsal David Jančík
Avatar
Uživatelské hodnocení:
5 hlasů
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity