Pravidla Ucet
Nepřihlášen

Článek

Menu

Začíname programovať hry v GM 2. časť
Napsal: Rion
Přidáno: 16.07. 2010

Ahoj znova, Tak ako som sľúbil dnes si povieme niečo o alarmoch, cykloch do a ešte o iných druhoch kontrolovania vecí, premenných atď.

Začíname programovať v GM - časť 2. alarmy, polia, for, do...

Ahoj znova, Tak ako som sľúbil dnes si povieme niečo o alarmoch, cykloch do a ešte o iných druhoch kontrolovania vecí, premenných atď.

Alarmy

Alarm je niečo ako časovač, nastavíte čas a on odpočítava, no má jeden rozdiel. Po odpočítaní času ktorý zadáte alarm niečo vykoná (čo mu nastavíte). V GM můžete využiť až 12 alarmov pre každý objekt zvlášť (0,1,2...10,11). Ešte je tu jedna důležitá vec, alarm počíta takzvanú room_speed, čo je rýchlosť miestnosti, obyčajne je prednastavená hodnota 30 čo zabezpečuje plynulý chod hry. To znamená že jedna sekunda má 30 stepov, takže ak budete nastavovať alarm tak vždy je to nejako takto
alarm[číslo]=30*x //to x znamená počet sekúnd, prípadne ak máte room_speed väčšie ako 30 tak dajte jednoducho namiesto 30 room_speed //asi nejako takto: alarm[číslo]=room_speed*x
Alarm nastavíte jednoducho, najprv napíšete alarm, potom do hranatých zátvoriek jeho index(číslo) potom rovná sa a nakoniec to čo som hovoril o pár riadkov hore. Príklad:
alarm[0]=30*5 //v preklade je to že alarm sa aktivuje za 5 sekúnd
No keď chceme aby niečo vykonal tak si musíme prednastaviť event čo vykoná našu požiadavku. Takže si dáme event Alarm[0] a tam můžeme napísať hocičo, tu vám ukážem pár príkladov aj s tým čo robia:
//Ako asi funguje pole ktoré ide stále dookola image_index+=1 //k premennej image_index pričíta 1 //(image_index je interná funkcia gm ktorá nám uľahčuje robotu) alarm[0]=30 //alarm sa znova aktivuje, takže toto bude prebiehať donekonečna //no nepůjde to len tak, musíme si nastaviť podmienku, v stepe, //if image_index>5 {image_index=0} toto nám zabezpečí že to bude prebiehať stále
A k záveru alarmov, alarmy sa dajú využiť na kadečo, na kontrolovanie rýchlosti streľby, na rast polí ako som ukázal, na odčasovanie zničenia objektu atď.

Polia

Polia predstavujú premennú s tzv indexom ktorý je v hranatých zátvorkách, poznáme v game makeri dva typy, jednorozmerné a dvojrozmerné.
pole[0]=516 //príklad jednorozmerného poľa pole[0,0]=567 //príklad dvojrozmerného poľa //namiesto núl můžete dať úplne ľubovoľné číslo //ešte pár príkladov pole[8]="huhu" //keď zapíšete niečo do zátvoriek berie sa to ako text pole[0,1]=premenna1 pole[5,8]=premenna55 // a tak ďalej...
Polia sa využívajú na to keď chceme vytvoriť viac premenných naraz alebo potrebujeme uložiť viac informácii do jednej premennej (platí pre dvojrozmerné polia). To je asi tak všetko.

Repeat

ÄŽalší výraz ktorý máme je výraz repeat, repeat znamená že sa bude príkaz opakovať toľko krát koľko mu nastavíte. Vyzerá to nejako takto:
repeat (číslo koľko krát má príkaz opakovať) {príkazy} repeat (15) {premenna+=1} //toto je príklad a konkrétne znamená že zopakuje 15 krát //príčítanie 1 k premennej
Toľko asi k repeat, ja ho príliš často nepoužívam pretože asi nemám kde.

While

While je už niečo iné a možno sa vám to bude niekedy hodiť ;) While je vlastne podmienka ktorá sa bude opakovať dovtedy kým nebude splnená, je to skoro to isté ako if. Zápis znie nejako takto:
while (podmienka) {príkazy} while (!place_free(x,y)) {x+=1} //výraz place_free znamená že pokiaľ je miesto voľné na súradniciach //x a y, keď pridám pred place_free výkričník tak sa to zmení na "pokiaľ nie je x a y voľné tak vykonaj //akciu, teda posúvaj objekt o jeden pixel doprava

Do

Do je skoro to isté ako while akurát sa to inak zapisuje, taký istý príklad ako pri while ale pomocou do:
do {vykonaj toto} kým (výraz) do {x+=1} until (place_free(x,y)) //ako vidíte je to skutočne to isté

For

Teraz prechádzame na niečo s čím sa můžete stretnúť naozaj v každom programovacom jazyku. For znamená cyklus ktorý niečo robí až kým sa to nesplní, je to len na vás koľko krát to prevedie, pretože mu to můžete nastaviť vy sami. For je skutočne důležitý a niekedy sa bez neho zaobídete len veľmi ťažko. Zápis vyzerá takto:
for (príkaz 1; výraz; príkaz 2) {blok príkazov} //príkaz 1 je priestor kde si vytvoríte premennú, hocijaké //písmeno alebo kratšie slovo napríklad i=0; op=0;... //výraz je podmienka dokedy sa má príkaz prevádzať a zapisuje sa nejako takto: //i<5 a v praxi to znamená niečo ako zamlčané if, takže if i<5 //príkaz 2 je priestor pre operáciu s premennou, najčastejšie sa pričítava ale to je jedno //napr i+=1, je to ľubovoľné číslo může byť aké chcete for (i=0; i<5; i+=5) {premenna=0} //takéto niečo používame keď chceme vytvoriť viac premenných //a nechceme ich otrocky vypisovať ;)
Fúch, tak na dnes je to všetko a aby ste neboli znudení iba z teórie nabudúce si skúsime vytvoriť našu prvú skákačku ;)
Ostatní díly seriálu:
[16.07. 2010] - Začíname programovať hry v GM
Klíčová slova: začiatočník programovanie teória pole alarm for do repeat
 

Komentáře:

Napsal: mSamyel
Přidáno: 14.11. 2010

Ahoj Avidie :)

Pokud něco něčemu nebudeš rozumět, můžeš se na foru - http://forum.vch.cz - zeptat v sekci Poradna. :)

Trvalý odkaz

Napsal: Avidius
Přidáno: 13.11. 2010

Zdravím, návod mě potěšil, protože jsem začátečník, ale rád bych již pokračoval v této "látce". Děkuji předem.

Ještě bych se chtěl zeptat jestli, bych mohl získat kontakt(icq např.) na tebe, kdyby jsem něco nechápal.

Trvalý odkaz

Velkej Chytrák
Copyright (c) 2001-2010