offline
- zmmaj
- Građanin
- Pridružio: 03 Okt 2009
- Poruke: 246
|
Napisano: 05 Jan 2010 3:03
DANAS JE 5-TI....
POCINJEMO SKRIPTING... ove igrice odlozite za kasnije...
OKO 14.00 krecemo sa time...
Ko nema neka instalira GM7...
ISTO vazi i za GM8, stim sto ce biti ograniceni, za neke funkcije...
toliko za sada...
Dopuna: 05 Jan 2010 9:05
Skripte
Najmocniji deo GM-a su skripte...
Do sada ste se zanimali drag&drop programiranjem, i morate priznati da vam bas ide..
OK.. Od danas polako pocinjemo upoznavanje sa skriptama, i skripting programiranjem...
Pocecemo sa svakodnevnim primerima, koje mozete odmah i upotrebiti u vasim igricama...
Ali, da bi vam bilo jasnije, krecemo od samog starta, i dela kojeg niste ni malo, ili vrlo ste malo koristili.
Hajde da prvo sistematizujemo nazive...
Meni dogadjaja , ili EVENT Selector, je meni koji se startuje na dugme ADD event u editoru objekta. ( sl ispod)
Ovaj meni je OSNOVA programiranja u GM, i odatle sve pocinje...
Create- Desava se pri KREIRANJU instance u sobi
STEP - desava se pri svakom prolazu( koraku) GM-a kroz dogadjaje.
DRAW - Poseban deo, i sluzi za razne vrste crtanja i iscrtavanja u GM prozoru, inace najbrzi event.
Ova 3 dogadjaja su za pocetak dovoljna...
Dakle... Otvorite Create event , sa leve, a sa desne strane editora objekta prevucite code editor( Sl2)
Znaci dobili smo mesto za upis kodova...
PA da probamo kako to radi
upisite u prvom redu
if
u drugom
// ja sam zdravko
u trecem
zdravko
Primeticete da su sva 3 reda oznacena drugom bojom u prozoru editora kodova.
Prvo je podebljano crno, drugo zeleno, trece normalno crno ispisano...
Prvo je SISTEMSKA funkcija, drugo je komentar, trece normalno napisan kod(zdravko).
Sada kada bi ste ovakav objekat ubacili u sobu, i pokrenuli, izbacilo bi vam gresku.Zapravo, samo je drugi red ispravan za GM...
U ostalim redovima je neispravna sintaxa.O sintaxi ce mo kasnije kroz primere.
Hajde da sada probamo nesto prakticno.
Izbrisite ta prva 3 reda, pa u prazan editor upisite sledece:(sl3)
show_question(' pije mi se kafa, a tebi?');
zatvorite editor, ubacite objekat u praznu sobu, ako to jos uvek niste, i startujte GM.
Po startu pojavice se prozorce sa ispisom unutra "ja sam zmmaj, a ti?", i YES i NO dugme...
Klikom na bilo koje gubi se prozor.
Prosto pitanje... Ali kako sada odgovor, tj ono sto ste kliknuli da prosledimo GM-u... Na ovako napisan nacin tesko...
Ali, upisite sad:
pitanje=show_question(' pije mi se kafa, a tebi?');
Sada ukoliko pokrenete program, nema nikakve vizualne promene, isti prozor sa YES i NO dugmetom, s'tom razlikom da smo NAPRAVILI prvu varijabilu tacnije, varijabila ' pitanje'.Ona ce zapamtiti nas odgovor ( YES ili NO) i mozemo je na dalje koristiti kroz ceo program.
Sta je varijabila?
Najprostije, sve ono sto nije konstantno je varijabilno, odnosno promenljivo. Dakle... PI je konstanta, ali odgovor na pitanje, na koji mozemo odgovoriti sa DA ili NE, svakako nije konstanta.
Varijabile mozemo menjati tokom celog programa, i koristiti ih takve promenjene kada nam god zatrebaju... Ali da ne duzim, videcete kroz dalje primere.
Dakle da nastavimo...
Dopisite sada ispod, da na kraju izgleda ovako...
pitanje=show_question(' pije mi se kafa, a tebi?');
if pitanje=1 show_message('kliknuo na YES');
if pitanje=0 show_message('kliknuo na NO');
hajde sad, pokrenite GM, i probajte...
Ako pokaze gresku, zaboravili ste znakove navoda , garrant
proverite i probajte opet...Sto se tice znakova navoda, OK je i ' ali i ".
Stom razlikom da ako koristite" mozete upisati npr " ako kazem 'ja' to je to"
Odnosno, jedan navodnik moze stajati unutar drugog...
Dakle, Pokrenuli ste, i probali... Aplikacija je postala malo inteligentnija, zna kada ste kliknuli na YES , a kada na NO...
Neki od vas ce odmah i smisliti prakticnu primenu ovog primera...
Npr na kraju igre mogu postaviti sledece...
pitanje=show_question(' za kraj stisni YES, a za restart igrice NO?');
if pitanje=1 game_end();
if pitanje=0 game_restart();
Slicna stvar je i sa uzimanjem nekih podataka od igraca... npr
ime=get_string(' Molim Upisite vase ime','');
show_message('upisao si ' + ime);
Znaci stringovi se daju sabirati...
NAstavak sutraa.. probajte razne variacije na ovu temu...
|