Tvoříme in-game movies pomocí TimeLine a Paths

Ostatní jazyky GameMaker Základy Tvoříme in-game movies pomocí TimeLine a Paths

V mnoha hrách jsou okamžiky, kdy potřebujeme aby se určité akce provedli v daný moment. Můžete se pokusit o něco takového pomocí alarmů, ale pokud to bude rozsáhlejší, začnete se v tom ztrácet a začne to být přespříliš komplikované.
Pomocí TimeLine si jednoduše nastavíte v jaký moment se provedou zadané akce. Vytvořený timeline můžete jednoduše přiřadit jakémukoliv objektu. Instance poté bude provádět akce, uvedené v přiřazeném timeline dle nastavených kroků. Kde kroky jsou brány dle rychlosti místnosti (výchozí 30 kroků za sekundu). Lze změnit v nastavení místnosti (pokud nastavíte rychlost místosti méně jak 30 hra se bude zpomalovat).
Pokud například chcete nějakého strážce co bude chodit okolo hlídaného místa (např. před hradem)... Jednoduše mu v timeline nastavíte:

  • Step 0: akce pohyb doprava
  • Step 60: akce pohyb nahoru
  • Step 120: akce pohyb doleva
  • Step 180: akce pohyb dolů
  • A při přiřazování timeline nastavíte loop na true (stejně tak můžete použít akci na random a cestu generovat náhodně)

Pro vytvoření timeline stačí klepnout na ikonku přesýpacích hodin nahoře v liště (pokud ji nevidítě -> zvolte File/Advanced mode -> musí být zaškrtnutý).
Vyskočí vám okénko podobné tomu, v němž editujete objekt. Vlevo můžete současný timeline pojmenovat a jsou zde akční tlačítka. Vedle je seznam přidaných časových úseků. Pak akce přiřazené vybranému okamžiku. A nakonec akce, jako v editaci objektu, které klasicky přetahujete nebo můžete použít jazyk GML k zadání akcí, které chcete v daném okamžiku provést.

Popíšeme si jednotlivá tlačítka:

  • Add - Slouží k přidání okamžiku do současné timeline. Zadáte moment - číslo v krocích (počítáno od spuštění timeline). Potvrdíte a můžete přidávat akce, stejně jako je tomu u nastavování objektů.
  • Change - Slouží pro změnu počtu kroků pro současně vybraný časový okamžik
  • Delete - Smaže všechny časové okamžiky v zadaném intervalu.
  • Clear - Smaže všechny časové okamžiky
  • Shift - Zadáte interval pro který chcete posunout všechny časové okamžiky v něm se nacházející o zadaný počet. Pokud změníte počet kroků na takové číslo, které se již v seznamu nachází - akce se přesunou.
  • Duplicate - Funguje na stejném principu jako Shift s tím, že se zduplikují jednotlivé časové okamžiky s akcemi.
  • Spread - Procentuálně rozšíří časové okamžiky v zadaném intervalu o zadané procento. Př.: máte následující kroky - 5, 8 a 12 a zadáte procento rozšíření 200 a interval <1;15> -> 9, 15 a 23 (kroky v intervalu se zdvojnásobili - počátek intervalu je 1 toto číslo odečteme od 5 -> 4 * 2 = 8 + 1 = 9; 8 - 1 = 7 * 2 = 14 + 1 = 15
  • Merge - Slouží pro sloučení všech časových okamžiků nacházejících se v zadaném intervalu do vybraného.

Doplňek:
Nevytvářejte záporné časové okamžiky -> nikdy se nevykonají.
Tlačítko Show Information slouží k zobrazení současného timeline pro čtení (co se kdy vykoná).

Ukážeme si to na jednoduchém příkladě:
Postavička ťukne na tlačítko - následuje scéna jak vyletí bomba a odpálí překážku.

  • Vytvoříme si objekt bomby a překážky a nastavíme jim příslušný sprite (pro překážku můžeme přidat sprite rozbité/rozstříš­těné překážky)
  • Vytvoříme nový timeline
    • v kroku 0 (hned po spuštění timeline)
      • nastavíme hspeed na 5 (pohyb bomby doprava)
      • gravitaci na 0.5
      • vspeed na -10 (jak kdyby byla vržena)
      • vytvoříme instanci objektu překážky na souřadnicích 250x120 relativně ku bombě (aby se překážka vytvořila tam kde bomba vybuchne)
    • v kroku 50 (bomba poletí 50 kroků (dle základní rychlosti místnosti 30 necelé dvě sekundy))
      • smažeme bombu (destroy instance)
      • vytvoříme efekt exploze
      • změníme sprit překážky na roztříštěný nebo překážku smažeme
  • do objektu bomby přidáme create event a do něj vložíme akci Set Time Line ze záložky main2.
  • bombu umístíme na začátek místnosti a hru spustíme

Co dělá která akce je popsáno zde: Ikonky záložka main2, zde jsou jejich ekvivalenty v kódu GML: GML zápis main2

S timeline se dají udělat velice pěkné meziscény, intra, outra. Stačí jen trocha fantazie a chuť si s tím pohrát :)

Nyní se podíváme na paths.

Pokud chcete nakreslit křivku po které se daný objekt bude pohybovat (například máte meziscénu, kde poražené tělo bosse opustila jeho duše a letí na určené místo nějakou kroutící se cestou - použijete paths).
Vytvořit cestu lze snadno pomocí červené zkroucené křivky nahoře v liště. Objeví se vám takovéto okénko: Napravo nahoře pod křížkem si můžete zobrazit libovolnou místnost pro lepší kreslení cesty.
Cestu navrhujete klepáním na určitá místa.
Pomocí tlačítka add můžete přidat nový bod a následně upravit jeho pozici případně rychlost instance v tomto bodě.
Insert má stejnou fci jako add s tím, ževloží bod pod vybraný bod v seznamu.
Delete - smaže vybraný bod.
Můžete si dále zvolit zda propojením bodů vzniknou čáry nebo křivka (křivka - curve má zaoblené rohy)
Closed - určuje zda bude cesta uzavřená (bude končit tam kde začíná)
Precision - určuje zaoblení křivky

Namalujte tedy nějakou uzavřenou křivku a vytvořte nějaký objekt třeba kuličky.
Do create eventu vložíme Set Path ze záložky move. Vybereme patřičnou cestu nastavíme instanci rychlost tak 5, at end - chceme aby se nezastavovala takže zvolíme continue from start a absolutní (přesně po zadané křivce)
Poté objekt přidáme někam do místnosti a hru pustíme.
Akce ikonek jsou popsány zde Ikonky sada move a zde je jejich GML ekvivalence GML zápis move


 

Stáhnout

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

 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Celkem (4 hlasů) :
55555


 


Miniatura
Předchozí článek
Ikony versus GML
Miniatura
Všechny články v sekci
GameMaker - základy a ikonky

 

 

Komentáře

Avatar
Darkmagic
Redaktor
Avatar
Darkmagic:

Jo, dík.
Upřesnil jsi mi moje vědomosti

Odpovědět 19.1.2012 11:11
Nejhorší je, když myslíš, že víš
Avatar
Darkmagic
Redaktor
Avatar
Darkmagic:

Ještě k ikonkám, vím, že to sem asi nepatří, ale já tam mám u objektu...
..no nekončí to draw, ale jsou tam ještě 3 další sloupce s dalšíma okonkamam který na tomhle webu ani nejsou. CO TO JE?????

Odpovědět 19.1.2012 11:12
Nejhorší je, když myslíš, že víš
Avatar
Odpovídá na Darkmagic
David Jančík [sczdavos]:

Nejspíš máš nainstalovené nějaké rozšíření. Podívej se do Extension packages (CTRL+SHIFT+E).

Odpovědět 19.1.2012 12:03
Čím více času dostaneš, tím méně ho máš.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.