Lekce 36 - Cesty

GM - Základy

Cesty (Paths)
Ve spoustě pokročilejších her určitě budeš potřebovat, aby se nějaké instance pohybovaly pouze po předem stanovené cestě. Šlo by to samozřejmě nastavit i pomocí událostí, nebo kódu, ale bylo by to zbytečně komplikované. Cesty (Paths) jsou pro tento účel mnohem jednodušší. Jednoduše nadefinuješ cestu tím že ji nakreslíš. Potom můžeš vložit příslušnou akci do události Stvoření požadovaného objektu. V této kapitole si to probereme detailněji.

Vytvareni cest
Pro přidání cesty použij příkaz Přidej Cestu (Add Path) v menu Přidej (Add). Otevře se následujícíokno:
Obrázek bude přidán co nejdříve.

V levém horním rohu formuláře zadáš název cesty, jako obvykle. Pod ním vidíš body definující cestu. Každý bod obsahuje pozici (souřadnice) a rychlost (sp). V závislosti na tom jak cestu použiješ, může být pozice absolutní (na zadaných souřadnicích), nebo reativní (cesta bude začínat tam kde instance zrovna je). Rychlost se používá následovně. Rychlost 100 znamená originální rychlost instance (100%). Nižší hodnota instanci zpomaluje a vyí zrychluje (v procentech).
Pro přidání bodu stiskni Přidej (Add). Vytvoří se kopie aktuálně zvoleného bodu. Nyní můžeš upravit pozici a rychlost bodu změnou hodnot v políčkách. Kdykoli zvolíš libovolný bod v seznamu, můžeš upravovat jeho hodnoty. Stisknutím Vlož (Insert) pro vložení bodu před aktuálně vybraný bod a Smaž (Delete) pro smazání aktuálního bodu.

V pravé části formuláře vidíš aktuální cestu. Červený puntík označuje aktuálně upravovaný bod. Modré puntíky jsou ostatní body. Zelený čtverec označuje začátek (startovní pozici) cesty. Cestu můžeš také vytvářet a měnit přímo myší. Klikni kdekoli pro přidání dalšího bodu. Klikni na existující bod a můžeš ho libovolně přetahovat. Pokud podržíš <Shift> a klikneš na bod, vložíš další bod, který pak můžeš přetáhnout. A nakonec můžeš použít pravé tlačítko myši pro smazání bodu. (Touto cestou nemůžeš měnit rychlost). Normálně se body přichycují k mřížce. Pokud chceš bod umístit na jiné místo, přidrž při vkládání, nebo přesouvání kávesu <Alt>, nebo zadej přesné souřadnice pomocí čísel.
Můžeš ovlivňovat tvar cesty dvěma způsoby. Zaprvé, můžeš nastavit typ spojení bodů (connection kind). Můžeš vybrat buď rovné spojení (Straight lines), nebo plynulou cestu (Smooth curve). Za druhé můžeš nastavit, jestli má být cesta uzavřená (Closed), nebo ne.
Na liště je několik důležitých příkazů. Z levadoprava mají následující význam. Prvnítlačítko uzavře formulář a uloží vechny změny. (Pokud nechceš ukládat změny, zavři okno křížkem.) Potom je zde tlačítko zpět, pro vymazání poslední úpravy.
Následující sada tlačítek ti umožní vymazat cestu, převrátit pořadí bodů cesty, posunout cestu, zrcadlit cestu vodorovně, převrátit cestu svisle, otočit cestu, a zvětšit/zmenšit cestu. Potom je zde sada tlačítek pro posun a vycentrování obrazu (nikoli cesty; aktuálně zobrazená oblast je označena dole na stavové liště).
Následující sada tlačítek nastavuje mřžku. Nakonec je zde tlačítko umožňující zobrazení odpovídajícího pozadí místnosti pro cestu. Použiješ to jednoduše tak, že cestu vložíš na odpovídající místo v místnosti. (To funguje pouze pokud použiješ absolutní cestu; viz. níže.)

Přiřazení cesty k objektu
Pro přiřazení cesty instanci nějakého objektu, můžeš vložit akci Nastav cestu pro instanci do nějaké události, například do události Stvoření. V této akci musíš vybrat cestu z rozevíracího menu. Je zde několik hodnot, které můžeš nastavit.
Musíš zvolit cestu pro přiřazení a nastavit rychlost v bodech za krok Pokud je rychlost kladná instance startuje od začátku cesty, pokud je rychlost záporná instance startuje od konce cesty. Je zde také akce pro  nastavení rychlosti cesty. Pomocí ní může například udělat to, aby instance na cestě zrychlovala, nebo zpomalovala.
Dále musíš zadat chování na konci, to znamená co se má stát až bude cesta dokončena. Můžeš dát zastavení pohybu, opětovný start cesty od začátku (to jez původní startovní pozice), opětovný start cesty ze současné pozice, a zpětný pohyb po cestě zpět.

Nakonec zadáš, jestli má být cesta absolutní, nebo relativní. Absolutní cesta se provede na pozici, na kterou byla zadána. Instance se umístí na startovní pozici (pokud je záporná rychlost tak od konce). Pokud zadáš relativní cestu, cesta bude zahájena z aktuální pozice na které se instance nachází.
Pokud chceš umístit instanci na jiné místo na cestě, než je start, použij akci Nastav pozici na cestě. Pozice je mezi 0 a 1. O znamená začátek a jedna konec cesty.
Při použití skriptu máš ještě více možností kontroly nad cestou. Je zde funkce pro zahájení cesty pro instanci. Proměnná path_position označuje aktuální pozici na cestě (mezi 0 a 1). Proměnná path_speed označuje rychlost na cestě. Proměnná path_scale může být použita pro zvětšení (zmenšení) cesty. Hodnota 1 znamená původní velikost, Větší hodnota cestu zvětšuje a menší zmenšuje. Proměnná path_orÍentatÍon označuje otočení cesty (ve stupních proti směru hodinových ručiček), takže můžeš použít cestu otočenou třeba o 90 stupňů. Je zde také proměnná pro kontrolu chování na konci cesty. Nakonec je zde několik funkcí pro zjišťování vlastností cesty (např. x a y aktuální pozice) a funkce pro vytvoření cesty. Je zde dokonce funkce pro vytvoření bez kolizní cesty aby instance s jistotou dosáhla cíle. Detailní popis těchto funkcí nalezneš v kapitoe o GML.

Určitě tě zajímá, co se stane když se instance střetne s jinou instancí při pohybu po cestě. V principu se stane totéž, jako při střetnutí instance při normálním pohybu. Pokud dojde ke střetu s pevným objektem, instance se umístí zpět na předchozí pozici. Pokud dojde ke střetu s nepevným objektem, instance se umístí na její novou polohu a dojde k dalšímu střetnutí a tak dále, dokud nebude kolize vyřešena. Pokud ne a objekt je pevný, instance se zastaví, a provede to co má provede co je definováno v události střetnuto(collision). Také proměnná path_position zůstane stejná a nezvýší se. Když objekt zmizí, instance bude pokračovat v cestě. Pro řízení střetů můžeš použít proměnnou path_position previous. To podrží předchozí pozici cesty a ty můžeš nastavit pozici cesty touto proměnnou a zabránit tak dalšímu pohybu.

Událost Konec cesty
Jakjiž bylo napsáno, můžeš nastavit co se stane když instance dojde na konec cesty. V tom okamžiku nastane událost Konec cesty (End of Path). Najdeš ji mezi ostatními událostmi a můžeš jí přiřadit libovolné akce. Například můžeš nastavit že instance bude zničena po dokončení cesty, nebo začne novou (jinou) cestu.

A nyní bude nejlepší když odcestujeme rovnou do další lekce.

Napsal uživatel wix