Když hráči vstupují mezi vývojáře – Vytvořte si vlastní hru (4) – TÉMA

První tři díly návodů předváděly princip, na jakém se programuje v Game Makeru. Tedy jednoduché přetahování ikonek do polí Events, v podstatě nic, co byste nezvládli. Dnes však zkusíme daleko složitější kódové programování.

Chtěli jste vytvořit, naprogramovat či jinak splácat svou vlastní videohru, ale neznáte tradiční programátorské postupy? Inu, ani nemusíte. Magazín GamingSite sdílí jednoduché návody, jež vám poskytnou důležitou praxi v rámci Game Makeru a jeho jazyka. Lehčí engine upřímně ani neexistuje. Vše programujete, jak už jsem se zmínil, přetahováním ikon.

První díl vás uvedl do úplných základů – instalace, prvního spuštění a krátkého seznámení s programem. Ve druhém jsme pak nakousli problematiku samotného Game Maker Studia, třetí už dal ucelený návod. Jeho výsledek spočívá v primitivní plošinovce, kterou lze ovládat šipkami. Kód Game Makeru přesto umožní dalekosáhlejší výsledky. Ty probereme v dnešním díle.

Každý programátor by měl splňovat minimálně tři kritéria: dobrá paměť, šikovnost a také by měl disponovat vhodnou dávkou trpělivosti. Bez ní totiž přestanete po první chybové hlášce. Začátky v programování doprovází metoda pokus – omyl, pokud ovšem nečtete příručky, či tyto návody.

Programovací jazyky přímo vycházejí z angličtiny. Ať se vám to líbí nebo ne, tento světový jazyk vám ulehčí dost práce, když ho umíte. Ač někteří programátoři neumějí anglicky, funguje u nich úžasná paměť. Některé jazyky (vlastně skoro všechny) při psaní kódu ukazují možné funkce, což umí též Game Maker Language; GML.

Otevřením svého projektu začíná naše programátorská pouť… Založte objekt s názvem obj_player. Potom zvolte Event Create a do něj vložte ze záložky control (složka Code) první ikonu Execute Code. Otevře se vám okno, kam se píše kód. První krok splněn! Nyní ovšem přichází složité programování. I když, jak v čem. Zdá se mi logické, co se chystáme udělat:

  • grav = 0.2;
  • hsp = 0;
  • hsp_carry = 0;
  • vsp = 0;
  • movespeed = 4;
  • jumps = 0;
  • jumpsmax = 2;
  • jumpspeed_normal = 5.5;
  • jumpspeed_powerup = 10;
  • jumpspeed = jumpspeed_normal

Jednoduše zkopírujte text do kódu. Vysvětlíme si, co tento kus kódu představuje. Grav nastavilo gravitaci, hsp horizontální rychlost, hsp carry s tím úzce souvisí, vsp pak vertikální rychlost, movespeed stupeň oné rychlosti, jumps, jumpsmax, jumpspeed_normal, jumpspeed_powerup a jumpspeed = jumpspeed_normalu určují konstantu skoku. Takže můžete skočit maximálně dvakrát za sebou, normální rychlost skoku se rovná 5.5, čím víc držíte mezerník, tím výš skáčete a jednotlivé konstanty se sobě rovnají.

  • //Hráčův povel
  • key_right = keyboard_check(vk_right);
  • key_left = -keyboard_check(vk_left);
  • key_jump = keyboard_check_pressed(vk_space);
  • key_jump_held = keyboard_check(vk_space);
  • key_down = keyboard_check(vk_down);
  • //Reakce na povely
  • move = key_left + key_right;
  • hsp = move * movespeed;
  • if (vsp < 10) vsp += grav;
  • //Skoky
  • if (place_meeting(x,y+1,obj_wall))
  • {
  • jumps = jumpsmax;
  • }
  • else
  • {
  • if (jumps == jumpsmax) jumps -=1;
  • }
  • if (key_jump) && (jumps > 0)
  • {
  • jumps -= 1;
  • vsp = -jumpspeed;
  • }
  • if (vsp < 0) && (!key_jump_held) vsp = max(vsp,-jumpspeed/2)
  • var hsp_final = hsp + hsp_carry;
  • hsp_carry = 0;
  • //Horizontální kolize
  • if (place_meeting(x+hsp_final,y,obj_wall))
  • {
  • while(!place_meeting(x+sign(hsp_final),y,obj_wall))
  • {
  • x += sign(hsp_final);
  • }
  • hsp_final = 0;
  • hsp = 0;
  • }
  • x += hsp_final;
  • //Vertikální kolize
  • if (place_meeting(x,y+vsp,obj_wall))
  • {
  • while(!place_meeting(x,y+sign(vsp),obj_wall))
  • {
  • y += sign(vsp);
  • }
  • vsp = 0;
  • }
  • y += vsp;

Nelekejte se, kolik řádků se teď před vámi objevilo. Založte Event Step a opět do něj vložte Execute Code – tam vkopírujte tento kód. Poté si založte objekt obj_wall – přesně v tomto změní. Přiřaďte k jednotlivým objektům sprity, abyste ve hře také něco viděli.

Hráčův povel asi netřeba vysvětlovat. Klávesy zkrátka posunují obj_player scénou.

Reakce na povely se zaměstnávají právě tím, že hýbou objektem. Tyta dva oddíly se týkají jeden druhého.

Skoky kontrolují vzdálenost, kde se vyskytuje volné místo, a při držení narůstají.

Horizontální kolize určuje chování při střetu s překážkou ve vodorovném směru. Vertikální ve svislém.

GMS 4

Převzato z YT kanálu Shaun Spalding

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.