IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Game maker tutoriál - Letecká strieľačka

Spustite si game maker (pri tvorbe tejto hry som používal verzii 8.0). Ak nemáte zapnutý Advanced Mode tak ho jednoducho zapnite -> Kliknutím na File a ak u možnosti Advanced mode nie je fajka kliknite na túto možnosť.

Najprv pridáme obrázok (ďalej už sprite) raketky. Kliknite preto na priečinok Sprites pravým tlačidlom a zvoľte Create sprite. Sprite si pomenujte napríklad spr_rocket (predpona spr označuje skratku sprite je vhodné ju používať aby sa vám potom neplietol rocket ako sprite a rocket ako object). Potom kliknite na Load sprite a zo zložky Space nachádzajúce sa v zložke s game maker vyberte nejaký obrázok rakety napríklad rocket.png. Potom potvrďte tlačidlom Open a sprite potvrďte OK.

Teraz vytvoríme object. Môžete zase kliknúť pravým tlačidlom na priečinok oObjects alebo ho pridať pomocou tlačidla s obrázkom modrej guľôčky nachádzajúce sa v lište ovládacích prvkov (hore v okne programu).

Object si pomenujte najlepšie obj_rocket a nastavte mu predvolené sprite kliknutím na ikonku v paneli Sprite (vľavo hore v práve aktívnom okne) vybraním spr_rocket. Pozn. môžete si všimnúť tlačidiel ktoré sa nachádzajú v paneli sprite - New a Edit, pomocou ktorých môžete tiež vytvoriť alebo zeditovať sprite.

Teraz musíme objekt naučiť jednoduchým pohybom. Začneme pohybom vľavo a vpravo. Kliknutím na tlačidlo Add Event pridajte event -> Keyboard / Left a Keyboard / Right. Všimnite si že sa do boxu označeného nadpiskem Events pridali <Left> a <Right>. Kliknite najprv na <Left> a pridajte akciu Set the horizontal speed nachádzajúce sa v move druhá odzhora Game maker - Simulátory

Otvorí sa okno v ktorom nastavíme vlastnosť hôr. speed na napríklad -5.

To isté urobte u <Right> s tým že tam nastavte absolútnu hodnotu teraz zadaného čísla takže napr. 5.

Potom potvrďte objekt tlačidlom OK.

Pridajte Room vľavo hore si všimnite raketky a rovnakého prvku ako pri výberu Spritu. Môžete si neskôr vyberať sprity. Teraz máte vybranú raketku takže kliknite niekam do prostredku miestnosti a raketka sa vloží. Room potom potvrďte zase tlačidlom v tvare fafky nachádzajúce sa hore vľavo a vyskúšajte si pohyb raketky kliknutím na zelenú sipecka (alebo F5).

Je to úžasné ale chcelo by to aby sa raketka taky zastavila že? :)

Preto okno zatvorte a opäť otvorte objekt raketka -> pridajte ďalšie dva eventy keyrelease / left a right. Do ktorých umiestnite rovnaké akcie ako minule a nastavte tam hodnotu 0 (resp. Len stlačte OK).

Vyskúšajte si hru znova. Už je to lepšie však? :)

V editore roomu si tiež vyskúšajte klávesové skratky ak kliknete na už existujúci objekt s držaním ctrl -> potom ho môžete premiestňovať. Alt vám zruší nepríjemné snapovanie ku čtverečkům -> plynulý pohyb. Shift potom objekt klonom.

Nastavte si v záložke settings výšku roomu na potrebné 1500. Vo views zaškrtnite Evable the use of Views a Visible when room starts. Keby sme použili view na objekt rakety tak by sa room začal posúvať až by raketka došla doprostred. Preto musíme urobiť dlaší objekt. Vytvorte si objekt obj_camera, odškrtnite jej visible (bude neviditeľný) a do eventu Create jej dajte akcii Set the vertical speed Game maker - Simulátory
na -2. To isté urobte u obj_rocket. Potom vložte do roomu asi centimeter nad dolný koniec raketku a do polovice výrezu kameru. Vo views nastavte Object following na obj_camera a v˘bor na 320 (pripíšte nulu). Či ste správne umiestnili obj_camera a či funguje posun po mape tak ako chceme zistíte až po tom čo pridáte pozadí. Takže ešte chvíľku vydržte.

Vytvorte nové pozadie a načítajte nejaké z priečinka game maker. Potom v záložke pozadia v roomu nastavte rovnakým spôsobom ako sprite pri objekte defaultný pozadia -> vpravo na mape sa potom ukáže. Teraz spustite hru a kochajte sa.

Game maker - Simulátory
Aby raketka nemohla opustiť room a letieť niekam do halela ... proste dopryč. Musíme pozmeniť pár vlastností. Vytvorte si nový sprite pomenovaný treba border. Kliknite na Edit sprite potom vytvorte nový sprite (biela obálka vedľa zelenej sipecka). Nastavte veľkosť na 660 šírka a 500výška urobte jednoduchý rámček. Uložte a v nastavení Spritu stlačte tlačidlo centier -> krížik sa vycentruje do stredu obrázka. (Keď budete premiestňovať objekt s týmto Sprit tak si môžete všimnúť že je vycentrovaný a keď ho vložíte alebo premiestňujete tak začína prostriedkom, teraz si to vyskúšate a pochopíte)
Game maker - Simulátory
A všetko potvrďte. Tento rámik nastavte ako defaultný sprite objektu obj_camera, ktoré zaškrtnite ešte políčko solid a potom sa prepnite do správy roomu. Kde kamerou pohybujte pomocou ctrl + shift + myš tak aby sa jej tri rohy (ľavý pravý a dolný) mierne vynárali z okrajov roomu.
Game maker - Simulátory
Potom ešte nastavte u hbor: 0 au vbor: 250. To je veľkosť zóny od každej strany (horizontálne alebo vertikálne) od ktorej sa začne pohybovať room.

Teraz ešte promakáme raketu aby zrýchľovala a spomaľovala.

Pridajte preto známej eventy <UP>, <DOWN>, a ich release.

Do up dáte zase set the vertical speed a hodnotu trebárs -7. Do release up -2 resp. predvolenú hodnotu.

Do down dáte 5 a do release down zase predvolenú hodnotu -2.

Ešte pridajte kolízii s obj_camera (event collision) a do neho dajte akciu štart movin in a direcotry Game maker - Simulátory
(Prvá ikonka v move). Kde kliknite na šípku hore a ako hodnotu napíšte 2. (Vspeed má totiž hodnoty v kladiem ako pohyb nadol a hodnoty v zápore ako pohyb hore a aby sme vypli raz akciu pohyb do strán použijeme túto a takto :))

Teraz do raketky ešte pridajte event Outside View (nachádzajúce sa v Other). Do ktorého dajte akcii Go to next room (main1 v dolnej časti) a vyberte si nejaký pekný efekt.

Potom si vytvorte nejaký ďalší room. A môžete si tam dať ako pozadie nápis Vyhrali ste :) Najlepšie ako tile.

Tile je obrázok ktorý nemá inakšie účel než zobraziť sa. Ak chcete iba obrázok používajte tiles zaťažujú menej pc než objekty pretože nemajú vlastnosti. Takže si vytvorte pozadie v editore napíšte nejaký ozdobný nápis vyhrali ste a potom v editore roomu (toho nového) kliknite na záložku tiles a vložte text s výhrou.

Hru si vyskúšajte :)

Teraz môžete room nejako vyzdobiť (ten v ktorom lieta raketka), pridať nejaké tiles a nejaké objekty (do ktorých raketa nesmie naraziť).

Tu máte nejaké tiles:

Game maker - Simulátory
Použite ich tak že je načítate ako pozadie a zaškrtnete use as tile set rozmery zmeňte na 32x32. V roomu si potom otvorte záložku tiles kliknete na požadovaný obrázok (hore si nastavte snapovanie tiež na 32x32 aby sa vám lepšie umiestňoval). A potom už jednoducho klikáte. Pozn .: ak vás štve že klikáte a nejaké objekty alebo tile alebo čokoľvek iné mizne tak túto neblahost zrušíte odškrtnutím políčka Delete lower.

Odporúčam prečítať si tento článok o optimalizácii hry v GM

Teraz vytvoríme objekt rozbité raketky do ktorého dáme nejaký sprite výbuchu. A vložíme event animation end (z other) a do neho akciu reštart room (z main1 dole)

Do kolízie s prekážkou vložte akciu play sound z main1 kde si dáme nejaký zvuk (ja zvolil z priečinka game maker prvé čo ma prišiel pod ruku alarm) potom destroy the inštancie (kôš z main1) kde kliknete na Other aby sa zničila prekážka a pod to change inštancie Game maker - Simulátory
z main1 kde nastavte change into na rozbitú raketku.

Teraz si pôjdeme vytvoriť animáciu aby nám fungoval event animation end. Je to jednoduché buď si nájdete nejaký gif s animáciou explózie a potom ho dáte ako sprite čim máte problém vyriešený alebo si vo sprite dáte viac obrazov za sebou a automaticky sa z nich stane animácie.

Odporúčam prečítať si tento článok ako správe urobiť animáciu

Teraz si vyrobíme guľomet resp. patrónovi ktorá bude vylítávat z špičky rakety aby sme mohli prekážky rozstrieľať.

Vytvoríme preto objekt bullet ku ktorému si treba opäť prepožičiame sprite z priečinka game maker (vycentrujte ho pomocou tlačidla centier).

V objekte rocket si vytvoríme event keyboard space do ktorého dáme akciu create inštancie (z main1) kde napíšeme ako súradnice súradnice rakety (ale ešte predtým by sme si mohli nastaviť nulové súradnice rakety na špičku rakety) zvolíme preto editáciu Spritu a sipecka nasmerujeme na vrchol rakety. Potom stačí ako súradnice napísať obj_rocket.xa obj_rocket.y.

Ak si hru vyskúšate zistíte, že je to fakt krásne, ale trochu k ničomu : D

Takže najprv by to chcelo nejaký interval aby sa náboje nevytvárali stále dokola ale mali nejakú oneskorenie.

Do create pridáme set variable (štvorček s VAR v dolnej časti) a napíšeme názov premennej ammo a hodnotu 1

Vytvoríme si event Alarm 0 a urobíme to isté plus ešte pridáme zvuk streľby (použil sem gun7 z game maker).

Event space takto poupravíme:

Game maker - Simulátory
Do objektu strely pridáme event create a tam štart moving in a directory Game maker - Simulátory kde zvolíme šípku hore a rýchlosť tak 10.

Pridáme ešte kolízia s prekážkami kde dáme 2x destroy (kôš) -> other a self. A outsite of room destroy self.

A skúsime hru.

Pokiaľ chcete mať hru efektívnejšie pridajte nejakému objektu (přkážce), že sa bude pohybovať proti vám napríklad nejaký meteorit.

Do create u raketky môžete pridať ešte set score ktoré nastavíte na 0 a set the score caption info čo vám umožní zobrazovať v titulku okna informácie o skóre. Game maker - Simulátory
Za každý zostrelený objekt potom môžete dať set the score +1 (zadáte 1 a záškrt relative - tým pripočítate k súčasnej hodnote) - túto akciu vložíte pred destroy inštancie v obj_bullet pri kolízii s objektom

Teraz si urobíme jednoduché nepriateľov.

Najprv si zase vytvoríme objekt napr. Alien ktorému vyberieme patričný sprite zase mu nastavte sipecka na špičku.

Potom kliknete na objekt strela a dáte duplikovať. Zmeníte jej smer -> dole a rýchlosť znížte tak na 5. Z kolízie s prekážkami odrovnáte score +1 a pridáte kolízií s raketou. Do ktorej dáte prehrať zvuk alarmu, destroy self inštancie a change other inštancie to raketa rozbitá.

A strelu je tiež potrebné otočiť, tí čo vlastní GM Pre môžu požiť Transofrm sprite a flipnout ho, ostatní musia vytvoriť nový sprite a otočiť ho v editácii Spritu (transform / flip).

Znovu si otvoríme objekt alien do Create dáme set variable alien_ammo na 1 a set alarm 0 na 20. Do alarm 0 create inštancie obj_alien_bullet so súradnicami alien lode (napíšte x, y) -> aby keď si ich do mapy dáte viac aby všetky strieľali. A znovu zavoláme alarm0 s oneskorením 20;

Do obj_bullet vložte kolízii s mimozemšťanama, vložte si ich do mapy a vyskúšajte.

Ešte ho jednoducho rozhýbe. Vytvorte si jednoduchý sprite nejakú čiaru s rozmermi 5x20 (šírka x výška)

Vytvorte objekt bounce ktorému nastavte solid a vypnite visible. Dajte mu kolízii s obj_alien a do neho akciu bounce Game maker - Simulátory
zaškrtnite Other au against vyberte all objects.

Vložte tento objekt na miesta kde chcete aby sa mimozemšťania odrážali. A mimozemšťanom do create pridajte štart moving Game maker - Simulátory
kde kliknite na ľavú a pravú sipecka a napíšte treba 5.

vyskúša :)

Podobne ako tanier si môžete vytvoriť ďalšie nepriateľov.

Aby ste nemuseli stále duplikovať ukážeme si fígeľ.

Objekt obj_alien premenujte na obj_enemy a vytvorte objekt obj_alien.

V obj_enemy vypnete sprite. A v obj_alien vyberiete sprite a ako parrent zvolíte obj_enemy. A potom u každého nepriateľa budete používať parrent. Čím ušetríte veľa miesta.

Jediné čo musíte ešte urobiť je v roomu miesto otazníčků dať obj_alien.

Teraz vyskúšajte a pridajte si ďalšie nepriateľov.

Ešte si otvorte obj_rocket kliknite pravým tlačidlom na kolíziu z prekážkou zvoľte duplikovať vyberte kolízii s obj_enemy a teraz je naša hra dokonalá.

Stačí pridal pár levelov. Natlačiť je prekážkami, nepriateľmi a nejakými drobnými bonusy, za ktoré bude hráč dostávať skóre (zase využitie parrent).

A hra je dokonalá!

Game maker - Simulátory
Prikladám zdrojové súbory, keby Vám niečo nefungovalo, alebo ste sa chceli na niečo pozrieť :)

 

Stiahnuť

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

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

 

Všetky články v sekcii
Game maker - Simulátory
Č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