Pravidla Ucet
Nepřihlášen

Článek

Menu

Vlastní funkce
Napsal: Kešu
Přidáno: 16.08. 2011

Chcete si usnadnit práci v GML? Použijte vlastní funkce!

Vlastní funkce


V GM mimo existujících gml funkcí (např. show_message()), je taky možnost vytvořit funkce vlastní bez použití GEX.
Je to velmi jednoduché a praktické. Díky této možnosti si můžete ušetřit obrovské množství práce!
Funkce se vytvářejí v záložce Scripts.

Jméno skriptu = název funkce

Funkce, co nevrací výsledek :
Pokud chceme například funkci, co vytvoří klikatelné tlačítko :
Vytvoříme tedy nový skript s názvem vytvor_tlacitko.
Budeme zadávat 9 parametrů :
x,y,x2,y2,text,font,akce po kliknutí,norm.barva,barva při najetí myší.
var xx,yy,xx2,yy2,txt,fnt,akce,b0,b1,b; //definujeme dočasné proměnné
xx=argument0; //hodnotu proměnné nastavíme z argumentu
yy=argument1;
xx2=argument2;
yy2=argument3;
txt=argument4;
fnt=argument5;
b0=argument6;
b1=argument7;
akce=argument8;

if (mouse_x>xx && mouse_x<xx2 && mouse_y<yy2 && mouse_y>yy) //pokud najedeme myší na tlačítko změní se jeho barva
{
b=b1;
}
else
{
b=b0;
}

draw_roundrect_color(xx+2,yy+2,xx2-2,yy2-2,b,b,0); //vykreslí tlačítko
for(i=2;i>0;i-=1)
{
draw_roundrect(xx+i,yy+i,xx2-i,yy2-i,1); //vykreslí rámeček
}

draw_set_font(fnt);
draw_set_valign(fa_center);
draw_set_halign(fa_center);
draw_text_color(xx+(xx2-xx)/2,yy+(yy2-yy)/2,string(txt),c_black,c_black,c_black,c_black,1);//vypíšeme text tlačítka

draw_set_valign(fa_left);
draw_set_halign(fa_top);

if (mouse_check_button_pressed(mb_left) && b=b1)
execute_string(string(akce)); //pokud na tlačítko klikneme, vykoná se akce
Pokud do draw dáte například
vytvor_tlacitko(0,0,100,32,"Hrát!",tlacitko,c_aqua,c_yellow,"room_goto_next()");,
vytvoří se vám takovéhle tlačítko -

Po kliknutí na něj vás hro přesune do další místnosti.

Funkce, co vrací výsledek :
Funkce, co převrátí slovo otoc_text.
Budeme zadávat jen jeden parametr - text.
var txt,pret;/definujeme dočasné proměnné
txt=argument0;
pret="";//nastavíme hodnoty
for(i=string_length(string(txt));i>0;i-=1)
{
pret+=string_copy(string(txt),i,1);
}//cyklem zapíšeme po znacích odzadu text do proměnné
return pret; //funkce nám vrátí převrácený text.
Příklad : show_message(otoc_text("Už umím GML!"));.

Jak vidíte, funkce jsou opravdu jednoduché. Pokud se je naučíte, získate velmi dobrou znalost.


Funkce pro vypočítání obsahu kruhu od NicharaCZ



Příklad opravdu jednoduché vlastní funkce pro výpočet obsahu kruhu:
• Vytvoříme skript nahoře na liště podobně jako sprite
• Vložíme následující kód

return pi*power(argument0,2)


• Co je za return to skript vyhodí.. takže teď vyhodí výsledek obsahu kruhu..
• Power(argument0,2) je mocnina poloměru na druhou a "pi" je konstanta (3.141592..)
• Skript pojmenujeme obsah_kruhu
• A vložíme do create:

promenna=obsah_kruhu(30)


• A ve drawu vykreslíme:

draw_text(0,0,promenna)


• Spustíme a dostaneme obsah kruhu o poloměru 30 px..

Klíčová slova: GML skripty scripty scripts vlastní funkce argument
 

Komentáře:

Napsal: amateur
Přidáno: 09.09. 2011

Teoreticky může funkce vracet i dvě hodnoty. Ono samozřejmě neexistuje něco jako return1, return2 a podobně. Ale funkci lze sdělit, aby si vyčíhlala aktuální číslo snímku, sudý snímek vracela jeden výsledek a lichý jiný. Čtecí skcript pak musí dělat to samé. Pokud je RS například 100, ani to (v případě vizualizace výsledku) nebliká.

Trvalý odkaz

Velkej Chytrák
Copyright (c) 2001-2010