Lekce 34 - Více o místnostech

GM - Základy

Více o místnostech
Místnosti v Game Makeru  mají mnoho  voleb.  Předtím jsme probrali jenom ty nejdůležitější.  V této kapitole si povíme o těch ostatních. Když otevřeš formulář místnosti v rozšířeném módu bude vypadat takto:

obrazek_mistnosti

Jak vidíš, přibyly nějaká nová tlačítka na liště. Jsou zde tlačítka pro urovnání instancí vodorovně nebo svisle. To je použitelné když se instance částečně překrývají. Také jsou zde tlačítka pro zamčení a odemčení všech instancí. Zamčené instance nemůžou být přesunuty, nebo smazány. To ti zabrání, abys je náhodně smazal. Použitím menu pod pravým tlačítkem myši (drž <Ctrl> a klikni pravým tlačítkem na instanci) můžeš také zamkout, nebo odemknout jednotlivé instance.
Nakonec můžeš nastavit jestli chceš použít izometrickou mřížku. To je velmi dobré při vytváření izometrických her. Ze začátku, jsou čáry v mřížce úhlopříčné. Také přilepování instancí je odlišné. (Pro tuto práci je nejlepší když je počátek instancí v levém horním rohu, jak je standardně nastaveno.)
Také jsou zde dvě nové záložky, které si probereme níže.

Rozšířené nastavení
V záložce Nastavení (Settings) jsou dva prvky, které jsme ještě neprobráli. Je zde zaškrtávací políčko Trvalý (Persistent). Normálně, když opustíš místnost a vrátíš se do té samé místnosti později, bude místnost vymazána do základního nastavení. To je normální jestliže máš několik levelů ve tvé hře, ale není to normální například u RPG. Zde místnost, když se do ní vrátíš, bude taková jako když jsi ji opustil. Když zaškrtneš políčko Trvalý, bude to přesně tak. Pouze když restartuješ hru bude místnost resetována. Vlastně, je zde jedna výjimka. Pokud označíě nějaký objekt jako trvalý (viz. kapitola o objektech), instance tohoto objektu nezůstanou v místnosti, ale přesunou se do další místnosti.
Také je zde tlačítko Kód
(Creation code) pro vytvoření kodu. Sem můžeš napsat podprogram v GML (viz. dále), který bude proveden při stvoření místnosti. To je použitelné pro zadání určitých proměnných pro místnost, vytvoření nějakých instancí, atd. Je důležité pochopit co přesně se stane, když se přesune   do určité místnosti ve hře.

  • Nejprve v aktuální místnosti (pokud nějaká je) všechny instance obdrží událost Konec místnosti. Potom jsou ne-trvalé instance smazány (událost Zničení nenastane!).
  • Potom jsou trvalé instance přidány do nové místnosti.
  • Vechny nové instance jsou vytvořeny a nastane pro ně událost Stvoření (pokud místnost není trvalá, nebo nebyla dosud navštívena).
  • Pokud je toto první místnost, nastane pro vechny instance událost Začátek hry.
  • Nyní se provede Kód pro stvoření místnosti.
  • Nakonec vechny instance obdrží událost Začátek místnosti.

Takže například událost Začátek místnosti můžeš použít v proměnné nastavené v Kódu pro stvoření místnosti a v Kódu pro stvoření můžeš odkázat na instance (nové i trvalé) v místnosti.
Je zde ještě jedna volba. V pop-up menu, když klikneš pravým tlačítkem na instanci a podržíš při tom <Ctrl> můžeš nyní nastavit Kód pro stvoření pro tuto jednotlivou instanci. Tento kód se provede při startu místnosti, těsně před událostí Stvoření instance. To je velmi dobře použitelné například pro nastavení parametrů které jsou specifické pro konkrétní instanci.

Pozadí z dlaždic
Můžeš také vytvořit dlaždicové pozadí. Důvod pro to Je následujfcí: Ve spoustě her budeš chtít mít pěkná pozadí. Například v plošinové hře chceš vidět pěkně nakreslené plošiny, stromy, atd. Můžeš to samozřejmě v Game Makem udělat pomocí spousty objektů. Problém ovem je, že je to moc pracné, zabere to veké množství zdrojů, a značně to zpomalí tvou hru. Například pro bludiště potřebuješ pro vytvoření pěkných zdí 15 různě ohraničených objektů zdí. Standardní cesta jak to obejít, použitá ve spoustě her, je ta, že zdi a jiné statické objekty jsou nakresleny pouze na pozadí. Ale, určitě se ptáš, jak potom udělám že nějaký objekt narazí do zdi, když je zeď nakreslená na pozadí? Trik je násedující: Vytvoříš pouze jeden objekt zeď ve tvé hře. Ten musí mít správnou velikost, ale nemusímít hezký vzhled. Při vytváření místnosti umístíš tyto objekty na místa kde má být zeď. A teď přjjde ten trik. Uděláš tento objekt neviditelný. Takže když hraješ hru, nevidíš objekt zeď. Vidíš pěkné pozadí. Ale pevný objekt zeď je tam kde má být a ostatní objekty ve hře na něj reagují.
Tuto techniku může použít pro jakýkoliv objekt který nebude měnit tvar ani pozici. (Nelze použít pro animované objekty). Pro plošinové hry potřebuješ pravděpodobně jenom jednu podlahu a jednu zeď, ale můžeš udělat velice krásné pozadí, kde bude na zemi krásná tráva, na stromech větve, atd.
Pro přidání dlaždic do hry nejprve potřebuješ přidat do hry zdrojové pozadí obsahujfcí dlaždice. Když přidáš pozadí do zdrojů, označ ho pro použití jako sada dlaždic. Potom nastav velikost dlaždic a mezery mezi nimi. Nyní při vytváření místnosti klikni na záložku Dlaždice (tiles).

Uvidíš následující formulář:
tiles_obrazek_GM_okno

Vlevo nahoře je aktuálně používaná sada dlaždic. Pro vybrání sady klikni na rozbalovací seznam hned pod ní.
Nyní můžeš přidávat dlaždice do místnosti, a to tak, že vybereš dlaždici vlevo nahoře a potom klikneš na požadované místo v místnosti. Tento postup je úplně stejný, jako když přidáváš instance. Podklad dlaždic je smazán, ledaže bys odškrtnul volbu Smaž podklad (Delete underlying). Může požít pravé tlačítko pro vymazání dlaždic. Podrž <Shift> pro přidání více dlaždic a <Ctrl> pro přesunutí dlaždice. Kávesa <Alt> ruší zarovnání dlaždice do mřížky. Také je zde malé pop-up menu dostupné pravým tlačítkem při současném držení <Ctrl>. Tlačítka na liště fungují stejně jako u objektů.

V některých případech budeš chtít přidat do místnosti část pozadí, která nebude mít přesně velikost dlaždice, nebo bude obsahovat několik dlaždic. To lze udělat následovně. Ve zdrojovém obrázku klikni levým tlačítkem se současným držením <Alt>. Nyní můžeš označit libovolnou oblast dlaždice, kterou potom můžeš umístit do místnosti stejným způsobem jako dlaždice. Pro vybrání několika dlaždic podrž klávesu <Shift>. Tato funkce funguje správně pouze když nejsou mezi dlaždicemi mezery.

Dlaždice mohou být pokládány do vrstev (layers) s různou hloubkou. Dole vidíš aktuální hloubku. Základní nastavení je 1000000, což je normálně za všemi instancemi. Takže instance se budou pohybovat před dlaždicemi. Můžeš použít tlačítko Přidej (Add) pro přidání další vrstvy dlaždic s jinou hloubkou. Záporná hloubka může být použita pro umístění dlaždic před instancemi. Pokud máš instance umístěny v různé hloubce, můžeš vrstvy dlaždic umístit i mezi ně. Tačítko Smaž (Delete) vymaže vrstvu se všemi jejími dlaždicemi. Tlačítkem Změň (Change) můžeš měnit hloubku vrtsvy.
Použití dlaždic je velmi výhodný nástroj. Je to velmi rychlé a můžeš používat velmi rozsáhlé místnosti s velmi malým zatížením paměti.

Pohledy(Views)

Nakonec je zde zábžka Pohledy (Views).Ta umožňuje zobrazovat různé částí místnosti na různých částech obrazovky (okna). To je velmi užitečné. Ve spoustě her budeš potřebovat zobrazit v jednom okamžiku pouze část místnosti. Například ve spoustě plošinových her se pohled pohybuje společně s hlavní postavou. U her pro dva hráče zase budeš potřebovat rozdělený obraz, kde v jedné části uvidš jednoho hráče a ve druhé části druhého hráče. Třetí použití je ve hrách, kde se část obrazu se pohybuje (např. s hrdinou) a zbývající část stojí (například nějaký výsledkový panel). To všechno lze v Game Makeru lehce udělat.
Když klikneš na záložku Pohledy (views) objeví se toto:

zalozka_views_v_GM

Nahoře je tady zaškrtávací políčko Povolit použití pohledů (Enable the use of Views). Toto políčko musíš zaškrtnout, pokud chceš používat pohledy. Pod ním vidíš seznam až osmi pohledů, které můžeš nadefinovat. Pod seznamem můžeš vybraný pohled nastavit pomocí násedujícfch parametrů. Nejprve musíš nastavit, jestli bude pohled viditelný přistartu místnosti. Nejméně jeden pohled musí být viditelný. Viditelné pohledy jsou napsány tučně.
Pohled (View in room) je vymezen obdélníkovou částí místnosti. To je oblast, která musí být zobrazena v pohledu. Zadáš polohu levého horního rohu (X,Y) a délku (W) a výšku (H) této oblasti. Potom musíš nastavit kde bude tento pohled zobrazen v okně hry (Port on screen). Opět musíš zadat pozici levého horního rohu a velikost. Pokud použiješ jenom jeden pohled bývá pozice většinou nastavena na (0,0). Velikost výhledu v okně může být jiná než velikost výřezu z místnosti. V tom případě bude pohled zvětšen (zmenšen) na velikost v okně. (V kódu lze také nastavit otočení(pohledu). Okénka se v okně můžou překrývat.
Jak bylo řečeno, pohled může sledovat nějaký objekt. Tento objekt můžeš specifikovat dole. Pokud je zde několik instancí tohoto objektu, bude následována pouze první. (V kódu můžeš nastavit i jinou konkrétní instanci.) Normálně by se hlavní postava měla kousek pohybovat bez změny pohledu. Teprve když se postava přiblíží hranici pohledu, výhled se začne posouvat. Můžeš nastavit polohu hranice u které se výhled začíná pohybovat s objektem. Nakonec můžeš také omezit rychlost kterou se výhled pohybuje. To by mohlo znamenat, že postava může odejít z obrazovky, ale dělá to hraní hry mnohem hladší. Použij -1 pokud chceš aby se výhled pohyboval okamžitě.

Napsal uživatel wix