Základní proměnné, podmínky a operátory
.
Základní proměnné a práce s nimi
V mnoha akcích je třeba zadat určité argumenty, zde si popíšeme, co který znamená.
Proměnné o kterých byste měli určitě vědět:
x - x-ová souřadnice instance
y - y-ová souřadnice instance
hspeed - horizontální rychlost (v pixelech za vteřinu)
vspeed - vertikální rychlost (v pixelech za vteřinu)
direction - současný směr ve stupních (0-360)
speed - současná rychlost pro daný směr
visible - určuje viditelnost (1) či neviditelnost (0)
instance
sprite_index - nastavení spritu (obrázku) objektu
image_angle - nastavení úhlu natočení (rotace) spritu
objektu ve stupních
image_index - pokud máte sprite, který má více snímků,
tato proměnná určuje, který z nich bude zobrazen (pokud chcete nastavovat
pomocí této proměnné stálý obrázek nastavte image_speed na 0 -> jinak
se sprite bude stále animovat)
image_speed - touto proměnnou nastavujete rychlost animace
spritu (pokud má sprite více snímků). Defaultní hodnota je 1. Nastavíte-li
vyšší, budou se některé snímky přeskakovat pro zrychlení animace.
Nižší pak animaci zpomaluje.
score - tato proměnná určuje hodnotu současného skóre
lives - tato proměnná určuje současný počet životů
health - tato proměnná určuje současný stav zdraví
mouse_x - x-ová souřadnice myši
mouse_y - y-ová souřadnice myši
room_speed - udává rychlost kterou běží hra (vhodné pro
převod kroků na vteřiny -> room_speed * počet
gravity - udává gravitaci, kterou je objekt přitahován
gravity_direction - směr gravitace
image_angle - natočení spritu
solid - určuje zda je objekt solid
Všechny systémové proměnné můžete nalézt zde
Globální proměnné
- globální proměnné mohou být použity kdekoli. Stačí proměnnou deklarovat a volat s prefixem global.
- global.snowing = true;
Dočasné proměnné
- pomocné proměnné, které chcete použít jen v kousku kódu a nikde jinde. Zadáte var a jméno proměnné je třeba ukončit středníkem ;
- var xx, yy, i;
Psaní podmínek
Chcete-li vyvolat akci pod nějakou podmínkou učiníte tak pomocí akce
Test Variable z Controls.
Aplies to: určuje u kterého objektu se
bude proměnná testovat
variable: název promenné
value: hodnota, která se bude kontrolovat jestli je
(non)ekvivalentní se současnou hodnotou proměnné
operation: pokud budete chtít porovnávat čísla můžete
zvolit zda má být číslo, větší nebo menší
NOT - označuje negaci (nonekvivalenci) - pokud se hodnota
proměnné nemá rovnat (nemá být větší, menší) než současná hodnota
proměnné
V kódu GML se s podmínkami pracuje takto: Například, budete chtít, kdykoliv nastavíte globální proměnnou snowing na true začne sněžit. (global.snowing = true;) Do step eventu napíšete tento kód
if (global.snowing == true)//pokud je hodnota globální proměnné snowing ekvivalentní (rovna) true { effect_create_above(ef_snow,0,0,1,c_white);//vyvolá se effekt sněžení }
Můžete rovněž chtít, aby byla akce vyvolána pokud bude splněno více podmínek.
if ((place_meeting(x,y,dvere)) && (keyboard_check_pressed(vk_enter)) and (mam_klic = true)) then//jednotlivé podmínky spojujeme pomocí *&&* nebo *and*, pokud jste zvyklí na pascalovou syntaxi můžete používat za podmínkou *then* -> pokud hráč stojí před dveřima zmáčknul enter a má klíč pak .... { ... }
Pokud chcete ověřit pouze jednu z podmínek:
if ((place_meeting(x,y,dvere)) && ((keyboard_check_pressed(vk_enter)) || (keyboard_check_pressed(vk_space)) or (keyboard_check_pressed(vk_shift)))//-> pokud hráč stojí před dveřmi a zmáčknul enter nebo space nebo shift ... { ... }
Při porovnání hodnot existují následující operátory:
number >= number2//větší nebo rovno number <= number2//menší nebo rovno number > number2//větší number < number2//menší number == number2//rovno number != number2//nerovno -> dá se rovněž zapsat "<>"