« 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 »