« Előző oldal- - - ^Tartalom^- - - Következő oldal »
ESEMÉNYEK:
A GM teljesen eseményközpontú. Minden
cselekvés az események miatt jön létre. Számos különböző
esemény van. A létrehozás és megsemmisítés események egy
objektum létrehozásakor vagy megsemmisülésekor történnek.
Minden lépésben a rendszer először a riasztás eseményeket
kezeli, majd a billentyűzet, egér, és a lépés eseményeket.
Ezután az objektumokat az új helyükre állítja az ütközés
esemény kezelésének befejeztével. Végül a rajzolás
esemény következik (ha több nézőpont van, akkor a rajzolás
többször meghívásra kerül egy lépésben).
Az aktuális tárgyhoz az event_perform(tipus,szam)
függvénnyel rendelhetünk eseményeket.
A következő eseményfajták, típusok léteznek:
ev_create - létrehozás
ev_destroy - megsemmisítés
ev_step - lépés
ev_alarm - riasztás
ev_keyboard - billentyűnyomás (folyamatos)
ev_mouse - egér (ugyanitt állítható be a
botkormány is)
ev_collision - ütközés
ev_other - egyéb
ev_draw - rajzolás
ev_keypress - billentyűnyomás (egyszeri)
ev_keyrelease - billentyű felengedés
Ha egy eseményfajtának több beállítási lehetősége van,
akkor a szam paraméter segítségével lehet
rajta pontosítani. Pl. a riasztás eseménye 0-tól 11-ig (GM
6.1 előtt 8-ig) állítható be vele.
Az egérhez a következő állandók használhatók:
ev_left_button - bal gomb
ev_right_button - jobb gomb
ev_middle_button - középső gomb
ev_no_button - nincs lenyomva egyik gomb sem
ev_left_press - bal gomb folyamatosan lenyomva
ev_right_press - jobb gomb folyamatosan lenyomva
ev_middle_press - középső gomb folyamatosan
lenyomva
ev_left_release - bal gomb felengedése
ev_right_release - jobb gomb felengedése
ev_middle_release - középső gomb felengedése
ev_mouse_enter - az egérmutató bejön a
játéktérbe
ev_mouse_leave - az egérmutató elhagyja a
játékteret
A következő 11 a GM 6.1-től használható:
ev_mouse_wheel_up - az egérgörgő fölfelé
görgetése
ev_mouse_wheel_down - az egérgörgő lefelé
görgetése
ev_global_left_button - ugyanaz, mint az ev_left_button,
csak bárhol a pályán, nem egy objektumon
ev_global_right_button
ev_global_middle_button
ev_global_left_press
ev_global_right_press
ev_global_middle_press
ev_global_left_release
ev_global_right_release
ev_global_middle_release
ev_joystick1_left - az első botkormány balra
mozdulása
ev_joystick1_right - jobbra mozdulása
ev_joystick1_up - fölfelé mozdulása
ev_joystick1_down - lefelé mozdulása
ev_joystick1_button1 - 1. gombjának lenyomása
ev_joystick1_button2 - 2. gombjának lenyomása
ev_joystick1_button3 - 3. gombjának lenyomása
ev_joystick1_button4 - 4. gombjának lenyomása
ev_joystick1_button5 - 5. gombjának lenyomása
ev_joystick1_button6 - 6. gombjának lenyomása
ev_joystick1_button7 - 7. gombjának lenyomása
ev_joystick1_button8 - 8. gombjának lenyomása
ev_joystick2_left - a második botkormány balra
mozdulása
ev_joystick2_right - jobbra mozdulása
ev_joystick2_up - fölfelé mozdulása
ev_joystick2_down - lefelé mozdulása
ev_joystick2_button1 - 1. gombjának lenyomása
ev_joystick2_button2 - 2. gombjának lenyomása
ev_joystick2_button3 - 3. gombjának lenyomása
ev_joystick2_button4 - 4. gombjának lenyomása
ev_joystick2_button5 - 5. gombjának lenyomása
ev_joystick2_button6 - 6. gombjának lenyomása
ev_joystick2_button7 - 7. gombjának lenyomása
ev_joystick2_button8 - 8. gombjának lenyomása
Ütközés eseménynél a többi objektum indexét adhatjuk meg.
Az "egyéb" (other) eseményeknél a
következő állandók használhatók:
ev_outside - a képernyő elhagyása
ev_boundary - a határvonal (képernyő széle)
elérése
ev_game_start - a játék kezdése
ev_game_end - a játék vége
ev_room_start - pálya kezdése
ev_room_end - pálya vége
ev_no_more_lives - nincs több élet
ev_no_more_health - nincs több energia (ha úgy
tetszik: egészség)
ev_animation_end - animáció vége
ev_end_of_path - nyomvonal vége
ev_user0 - 0. felhasználó
ev_user1 - 1. felhasználó
ev_user2 - 2. felhasználó
ev_user3 - 3. felhasználó
ev_user4 - 4. felhasználó
ev_user5 - 5. felhasználó
ev_user6 - 6. felhasználó
ev_user7 - 7. felhasználó
(GM 6.1-től ev_user15-ig lehet.)
A lépés (step) eseménynél a következő
állandók használhatók:
ev_step_normal - normális (a tárgyak új
helyükre kerülése előtt hajtódik végre).
ev_step_begin - kezdete (minden lépésben
végrehajtódik az összes többi esemény előtt).
ev_step_end - vége (a rajzolás esemény előtt
hajtódik végre; pl. jellemzően a tárgy képének az aktuális
iránytól függő megváltoztatására használatos).
event_perform_object(obj,típus,szam) -
ugyanúgy működik, mint a fentebbi, de ennél pontosan meg
lehet határozni az eseményeket a többi objektumnál.
Megjegyzendő, hogy ezen események az aktuális objektumhoz
érvényesek.
event_user(szam) - az "egyéb"
eseményeknél 8 felhasználói esemény határozható meg,
melyek csak ezen függvény hívásakor hajtódnak végre. A szam
értékének 0 és 7 közé kell esnie.
event_inherited() - örökölt esemény
végrehajtása. Csak akkor működik, ha volt egy szülő
(parent) objektuma. (Ha ugyanazon kódot kell több tárgynál is
ugyanabban az eseményben alkalmazni, akkor célszerű csak a
szülőobjektumban megadni, a többiben pedig csak ezzel az
utasítással hívni.)
A következő (csak olvasható) függvények használatával
tájékoztatást kaphatunk az aktuális esemény
végrehajtásának kezdetéről:
event_type - az aktuális esemény típusa.
event_number - az aktuális esemény száma.
event_object - azon objektum indexe, melynél az
aktuális esemény végrehajtása megkezdődött.
event_action - a megkezdett cselekmény jelzője
(0 jelzi az elsőt az eseményben, stb.).
« Előző oldal- - - ^Tartalom^- - - Következő oldal »