Chcete si vytvořit vlastní skript, ale nevíte, k čemu slouží argumenty nebo záhadné "return"?
Nápad (článek)
Po článku o optimalizaci mi napsal Likandro, že bych mohl vytvořit článek o vlastních skriptech. Řekl jsem si, proč tedy nenapsat nějaký krátký článek. Nemám teď nic na práci, tak začnu...
Nápad (skript)
Nejdříve potřebujeme vědět, co skript bude dělat. Jako příklad budeme vytvářet skript, který vezme 3 písmena z jedné proměnné a vloží je na začátek druhé proměnné, kterou potom vrátí.
Musíme vědět, jak skript bude fungovat. Nejdříve vytvoříme 2 dočasné proměnné, do kterých vložíme argumenty. Potom do druhé proměnné vložíme 3 písmena z první proměnné + zatím nezměněný obsah druhé proměnné. Nakonec druhou proměnnou vrátíme pomocí onoho return.
Vytvoření
Podívejte se na obrázek:
Na ikonku na které vidíme červené kolečko klikneme a tím skript vytvoříme. Nový skript je vlevo v zeleném kolečku. Dvojklikem spustíme interní editor game makeru a můžeme tvořit. Nejdříve ale musíme vymyslet jméno (které napíšeme do místa, kde se nachází modré kolečko). Je na vás, jestli zvolíte český, anglický nebo třeba španělský název, ale hlavně musí být zapamatovatelný a nesmí to být existující proměnná (speed, friction apod.) nebo funkce.
Já jsem zvolil anglický název skriptu, Copy3. Je jednoduchý, má jedno slovo (a jedno číslo) a je snadno zapamatovatelný (ovšem, jak pro koho :) ).
Tvorba
Napíšu důležité pojmy a funkce, které ve skriptu použijeme a budu se je snažit co nejlépe popsat:
Argument
Když píšete název funkce, která se má provést, to co do ní zadáváte, jsou argumenty. Vezmeme si funkci draw_text(). Potřebujeme do ní dát souřadnice (x a y) a text, to jsou argumenty. Všeobecněji: funkce(argument0,argument1,argument2...). Argumentů může být maximálně 16 - od argument0 do argument15.
V našem skriptu si nejdříve vytvoříme 2 dočasné proměnné:
var from,to;
A nyní do nich musíme dát argumenty:
from=argument0;
to=argument1;
to=argument1;
První argument bude v dočasné proměnné from a druhý v to. Nyní volání funkce vypadá takto:
Copy3("prvni argument","druhy argument");
Hlavní část
Vložení argumentů do proměnných máme. Nyní je musíme zpracovat. Z proměnné from vezmeme první 3 písmena pomocí funkce string_copy() a vložíme je do proměnné to i s obsahem této proměnné:
to=string_copy(from,1,3)+to;
Pokud bude tedy první argument "baba" a druhý "ovka", vznikne z toho "babovka" :).
Navrácení
Konečně se dostáváme k navrácení proměnné. Použijeme k tomu return, kterým vrátíme proměnnou to:
return to;
Je to velmi jednoduché, že? Nyní nám funkce vrací proměnnou. A jak toho můžeme využít?
Vložení do proměnné
promenna=Copy3("baba","ovka");
Nyní bude v proměnné promenna řetězec "babovka".
Podmínky
Hodí se to spíš u jiných skriptů, ale i zde můžeme použít podmínku:
if (Copy3("baba","ovka")=="babovka"){
/* proved neco */
}
/* proved neco */
}
Vykreslení
Jednoduše použijeme funkci draw_text():
draw_text(x,y,Copy3("baba","ovka"));
Jsou i další využití, třeba když chceme něco dělat s navrácenou hodnotou (např. z ní vzít 4 znaky a ty vložit k jiné proměnné... :D) ale napsal jsem ty základní.
Žmatly, patly... hotovo!
Takto nyní vypadá konečný skript:
var from,to;
from=argument0;
to=argument1;
to=string_copy(from,1,3)+to;
return to;
from=argument0;
to=argument1;
to=string_copy(from,1,3)+to;
return to;
Nyní, když víte k čemu slouží argumenty a return, můžete si vytvářet skripty. Stačí jen vědět, co potřebujete. Pokud jste nečetli článek o optimalizaci, pak je důležité říct: Skripty vytvářejte když stejný kód, ale třeba s jinými hodnotami, provádíte vícekrát (třeba ve třech objektech).
Je to možná trochu slabší článek, ale napsal jsem to jako menší oddychovku. Příště se pustím do něčeho většího. Ale i malé věci potřebujeme, ne? :)
Kdybyste si všimli nějaké chyby nebo kdybych něco vynechal, můžete mě upozornit v komentářích. Taky můžete psát návrhy na další články, ať vím, co byste chtěli. :)
Komentáře
Přidat nový
Pro přispívání musíte být přihlášen
Zapsal chylex - 26.03.2010 23:27
To bohužel jde jen u GEXu (podle toho co vím), ale na ně udělám taky tutor ;)
Zapsal Bullet catcher - 26.03.2010 21:47
Mě by ještě zajímala 1 věc. Když se píše třeba draw_text, tak ti to ukazuje, co se do toho doplňuje (x,y,string). Jak udělat takovouhle "nápovědu" i pro vlastní skript?
Díky



