IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

6. diel - TomBenova Akadémie v Game Makeru: Prvýkrát GML

TomBenova akadémie v game maker - Game maker - základy a ikonky

Prvýkrát GML

A už je to tu! Tentoraz si skúsime napísať prvý kúsok kódu. Nie je to vlastne nič ťažké a ak rozumiete po anglicky, sú to veľmi doslovné príkazy. GML (Game Maker Language) je jazyk, ktorý je vnútorne používaný Game Maker na opis činnosti. Ikony, ktoré ste si doteraz skúšali používať, sú len také pekné krabičky naplnené GML kódom a tak je aj GM vidí.

Nákupný

Určite sa pozrite na taky na program pribalený v zipsu. Je to presne ten istý, ktorý bol v minulom diele vytvorený pomocou ikon. Teraz je tu prepísaný do kódu GML. Objekt s pôvodnými ikonami je vnútri ponechaný nepoužitý, aby bolo možné sa pozrieť na pôvodnú ikonové a nové GML riešenie v jednom súbore.

GML všeobecne

Jazyk GML je možné v Game Makeru použiť na rôznych miestach:

  • prvá je ikona Code, ktorá ak sa naplní nejakými príkazmi, budú sa tieto príkazy vykonávať počas udalosti, do ktorej je ikona Code umiestnená
  • skript v zložke skriptov (Resources) umožňuje používať kus kódu pod vami vymysleným názvom opakovane (napr. budete mať kód, ktorý bude chvíľu pohybovať objektom náhodne všetkými smermi, vložíte ho do skriptu s názvom zatrepať, tak potom kedykoľvek v ďalšom kóde tej istej hry napíšete zatriasť (), vykoná sa celý uložený kód v aktuálnej situácii as aktuálnym objektom)
  • v oknách ikon tam, kde je editačné riadok pre číselnú alebo textovú hodnotu (tam napíšete len krátke kódy, ale inak tam ide napísať čokoľvek, čo nakoniec dáva výsledok potrebného typu)
  • creation code v miestnosti alebo v jednotlivých vopred umiestnených inštanciách objektov (špeciálny prípad použitia a niekedy sa na to pozrieme zvlášť)
  • pri vytváraní vlastných ikon alebo rozšírenie (i originálne ikony sú zostavené z GML kódu)

My sa v tejto kapitole budeme venovať kódu napísanému do ikony Code. V nej sa namiesto zložitých nastavení skrýva skoro obyčajný textový editor. Skoro hovorím preto, že tento pozná štruktúru jazyka GML a vie vyfarbovať text kódu podľa jeho zmyslu, rovnako ako upozorniť na niektoré vaše najbežnejšie a najzreteľnejší chyby.

Blok kódu GML má byť uzavretý v zložených zátvorkách, ale zrovna ak je náplňou ikony Code jediný blok, tak Game Makeru nevadí, keď tam tie zátvorky chýba. Všeobecne sa dá povedať, že je GM veľmi benevolentná k užívateľovi a ak kód aspoň trochu dáva zmysel, na formalitách sa nebazírujú.

GML blok obsahuje príkazy ukončené bodkočiarkou alebo ďalšie bloky kódu. Nebojte sa, vyzerá to celkom prehľadne. Pozrite napríklad na nasledujúce obrázky, kde je ten istý zápis v ikonách a v GML. Je zjavné, že stačí udržať nejakú úpravnosť vzhľadu a zmysluplnosť popisok, aby sa to slušne čítalo.

Game maker - základy a ikonky
Game maker - základy a ikonky

Príkazom uvedeným v obrázku sa hovorí priradenie a ide o jeden z najčastejších úkonov v GML vôbec.

Priradenie (hodnoty k premennej)

Priradenie má formu: premenná = výraz
kde premenná je miesto v pamäti počítača, ktorému dáte nejaké meno a to miesto potom plníte nejakú hodnotou. Niektoré jazyky potrebujú, aby boli premenné pomenované skôr, než sú prvýkrát použité (dávaní mien premenným sa označuje ako deklarácia premenných - oznamujete, že ich budete chcieť použiť a dáte im meno). Naproti tomu Game Maker si premennú vytvorí jednoducho vtedy, keď jej priraďujete hodnotu prvýkrát (prvému priradenie hodnoty sa hovorí inicializácia premenné), takže nutne deklarovať nemusíte. Premenná môže byť v GM iba číslo alebo textový reťazec. (Textový reťazec je proste skupinka znakov a dáva sa do úvodzoviek, aby bolo jasné, že ide o text -, Pepa šiel do Prahy pešo. ') Slovom výraz sa rozumie čokoľvek, čo možno v konečnom dôsledku identifikovať ako hodnotu.

Príklad:

pocet_robotu = 28;
pocet_robotu = (3 * 15) -5; // hviezdička znamená násobenie
pocet_robotu = pocet_robotu + 20;
pocet_robotu = sqr (5); // sqr robí druhú mocninu
a tak podobne.

Názvy premenných sa zapisujú iba pomocou písmen, číslic a podčiarknutia. Iné znaky použiť nesmiete.

Veľa premenných má Game Maker "vstavané od výroby". Napr. mouse_x a mouse_y pre polohu kurzora myši. Niektoré sú iba na čítanie (napr. Game_id) a do iných môžete aj zapisovať.

Premenná, ktorá nemôže meniť hodnotu vôbec sa volá konštanta. V GM sú len tri:

Názov hodnota
true 1
false 0
pi 3.141 ..
V menu Game Makeru pod položkou Define constants si ale môžete natvořit konštánt koľko je vám libo. Môžete potom potrebné používať namiesto true a false počeštené pravda a nepravda. (Aj keď anglická verzia je kratšia a všeobecne prijaté i v čechách)

Keď nejakým priradením vytvoríte vlastnú premennú, bude hodnota tej premennej čitateľná len v tej jednej inštancii, kde bola vytvorená. Hovorí sa tomu, že inštancie je vlastníkom tej premennej. Keď budem mať objekt zly_ninja, ktorý bude mať dve inštancie, tak každá bude mať svoju premennú pocet_shurikenu au každej inštancie bude mať inú hodnotu. Ak budete potrebovať v kóde z jednej inštancie odkázať na inú inštanciu alebo úplne iný objekt, použijete premennú takto:

  • nazev_objektu­.nazev_promen­ne = ... // premení patrí určitému objektu (pre všetky inštancie)
  • (cislo_instance) .nazev_promenne = ... // premenná je len v konkrétnej inštancii

Číslo inštancie má každá inštancia automaticky od chvíle vytvorenia a je uložené v premennej id. Je vidieť aj u objektov naklikaných do miestnosti vopred. Nájdete to v okne miestnosti, dole v riadku.

Voľné samostatné precvičovanie

Pôjde o jednoduchý koncept:

  • vstup číselné hodnoty a naplnenie premennej tou hodnotou
  • použitie nejaké bežné matematické funkcie
  • vypísanie hodnoty premennej po výpočte

(Vzor v zipsu sa volá vypocet)

Potrebujete jeden prázdny ľubovoľný objekt. V udalosti Create si v ikone kóde vytvoríme premenné, ktoré budeme chcieť používať. Od tej chvíle bude objekt mať tieto premenné a my s nimi môžeme všelijako pracovať.

napr:

A = 0; B = 27; cokoli = -1;

V udalosti Key Release (SPACE) si nechajte zadávať hodnoty tých premenných, ktoré chcete, aby používateľ programu vkladal ručne. Najľahšie je použiť zabudovanú funkciu get_integer ().

Zapisuje sa to takto:

cokoli = get_integer(„Zadej celé číslo: “, 6);

Vidíte tam názov funkcie a v okrúhlych zátvorkách najprv text, ktorý vyzve na zadanie čísla a potom za čiarkou, uvediete hodnotu, ktorá je podľa vás vhodným príkladom toho, čo by mal užívateľ zadať. Táto hodnota bude predvyplnená a užívateľovi stačí, aby stlačil Enter, pokiaľ s tou hodnotou súhlasí. Často sa používa namiesto čísla tá istá premenná, ktorú chceme meniť. Tým sa ako základná (default) hodnota objaví súčasný obsah premennej. takto:

cokoli = get_integer(„Zadej celé číslo: “, cokoli);

Teraz je potrebné s premennou niečo vykonať, keď už sme ju vytvorili a naplnili číslom. Prejdite si tabuľku číselných funkcií Game Makeru na http://www.itnetwork.cz/...bulka-funkci a vyberte si nejakú fuknciu a urobte s premennou nejaké výpočty. Môžete zakladať ďalšie premenné, ak je to potrebné.

napr:

absolutni_hodnota_z_cokoli =  abs( cokoli ) ;

Nakoniec v udalosti Draw (pozor, len a len tam to bude fungovať) zobrazíte obsah premennej. Urobíte to jednoducho funkcií draw_text. Ako už je v názve uvedené, funkcia vykreslí na obrazovku nejaký váš text. Kto dával pozor, tak mu došlo, že my žiadny text nemáme - máme číslo. To je bežná situácia, ktorá má jednoduché riešenie. GM má funkciu string (), ktorá urobí text zo všetkého, čo do nej dáte.

Vzor zápisu funkcie draw_text:

draw_text(x,y,‘nějaký text‘);     // vypíše text tam, kde leží instance objektu

Zápis rovnaké funkcie s použitím pre číselnú premennú:

draw_text(x,y, string ( cokoli ) );  // kulaté závorky jsou povinné

Urobte veľa pokusov so vstavanými funkciami a skúste si písať jednoduché výrazy. Musí vám to prejsť do krvi. Ak tu neurobíte dosť vlastných pokusov, nebudete neskôr stíhať s pochopením. V tomto vám nepomôže ani fórum. Ak len očami preletíte text článku, ťažko na fóre vyplodíte rozumné otázky na konkrétne veci a nielen, že sa budete motať stále tam čo ste, ale taky vás ostatní začnú mať čoskoro za hlupáka. Čakajú vás veci oveľa ťažšie a preto musíte tyhle vedieť dočista naspamäť a bez zaváhania.

Urobíte dobre, keď skúsite mať ako súťažných hodnôt iný objekt než ten, ktorý počíta výsledky. Precvičíte si veľmi bežný stav, kedy musíte určiť aj objekt u ktorého premenná je.

Nejako takto:

object0.cokoli = get_integer(„Zadej celé číslo: “, object0.cokoli);  //zápis v jiném objektu než object0

Hľadajte hranice možností

Nedržte sa príliš v medziach uvedených cvičení. Predovšetkým je dobré si uvedomovať, aké situácie budú problémové. Skúste napr. Zistiť najvyššie celé číslo, ktoré Game Maker vie zapísať do premennej a vyskúšajte, čo sa stane, keď zadáte neplatný vstup, napr. Odmocnina zo zápornej hodnoty.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

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

Stiahnuté 264x (2.44 MB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker

 

Predchádzajúci článok
TomBenova Akadémie v Game Makeru: Lenivosť vynašla koleso
Všetky články v sekcii
Game maker - základy a ikonky
Preskočiť článok
(neodporúčame)
Pohyb v GML časť 1.
Článok pre vás napísal TomBen
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
-
Aktivity