Tapahtumien kutsuminen

Kuten tiedät, Game Maker toimii täysin tapahtumien pohjalta. Kaikki toiminnot tapahtuvat tapahtumien seurauksena. Erilaisia tapahtumia on useita. Luomis- (Create) ja tuhoamistapahtumat (Destroy) tapahtuvat, kun instanssi luodaan tai tuhotaan. Jokaisella askeleella järjestelmä käsittelee ensin ajastintoiminnot (Alarm). Sitten se käsittelee näppäimistö- (Keyboard) ja hiiritapahtumat (Mouse) ja sitten askeltoiminnon (Step). Tämän jälkeen instanssit siirretään niiden uusiin sijainteihin ja sitten niiden törmäystapahtumat (Collision) käsitellään. Lopuksi käsitellään piirtotapahtuma (Draw) instanssien piirtämiseksi (huomaa, että kun pelissä käytetään useampaa kuvakulmaa, piirtotapahtuma kutsutaan useaan kertaan joka askeleella). Voit myös käynnistää tapahtuman instanssille koodinpätkän sisältä. Seuraavat funktiot käsittelevät tapahtumia:

event_perform(type,numb) Suorittaa ilmoitetun tyyppisen tapahtuman numb nykyisellä instanssilla. Seuraavat tapahtumatyypit ovat mahdollisia:

ev_create
ev_destroy
ev_step
ev_alarm
ev_keyboard
ev_mouse
ev_collision
ev_other
ev_draw
ev_keypress
ev_keyrelease
Kun annetun tyypin tapahtumia on enemmän kuin yksi, parametrillä numb voit osoittaa juuri tietyn tapahtuman. Ajastintoiminnolla numb voi olla jokin luku väliltä 0-11. Näppäimistötapahtumissa on käytettävä näppäimen näppäinkoodia. Hiiritapahtumia varten voit käyttää seuraavia vakioita:

ev_left_button
ev_right_button
ev_middle_button
ev_no_button
ev_left_press
ev_right_press
ev_middle_press
ev_left_release
ev_right_release
ev_middle_release
ev_mouse_enter
ev_mouse_leave
ev_mouse_wheel_up
ev_mouse_wheel_down
ev_global_left_button
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
ev_joystick1_right
ev_joystick1_up
ev_joystick1_down
ev_joystick1_button1
ev_joystick1_button2
ev_joystick1_button3
ev_joystick1_button4
ev_joystick1_button5
ev_joystick1_button6
ev_joystick1_button7
ev_joystick1_button8
ev_joystick2_left
ev_joystick2_right
ev_joystick2_up
ev_joystick2_down
ev_joystick2_button1
ev_joystick2_button2
ev_joystick2_button3
ev_joystick2_button4
ev_joystick2_button5
ev_joystick2_button6
ev_joystick2_button7
ev_joystick2_button8
Törmäystapahtumassa numb-arvoksi tulee antaa toisen objektin indeksi. Lopulta, muut tapahtumat -tapahtumaluokan kanssa voit käyttää seuraavia vakioita:

ev_outside
ev_boundary
ev_game_start
ev_game_end
ev_room_start
ev_room_end
ev_no_more_lives
ev_no_more_health
ev_animation_end
ev_end_of_path
ev_close_button
ev_user0
ev_user1
ev_user2
ev_user3
ev_user4
ev_user5
ev_user6
ev_user7
ev_user8
ev_user9
ev_user10
ev_user11
ev_user12
ev_user13
ev_user14
ev_user15
Askeltapahtumia varten voit käyttää seuraavia vakioita:

ev_step_normal
ev_step_begin
ev_step_end
event_perform_object(obj,type,numb) Tämä funktio toimii samalla tapaa kuin yllä oleva funktio, mutta nyt voit määrittää tapahtumia toisesta objektista. Huomaa, että näissä tapahtumissa toiminnot suoritetaan nykyiselle instanssille, ei määritetyn objektin instansseille.
event_user(numb) Muut tapahtumat -tapahtumaluokassa voit myös määrittää 16 käyttäjätapahtumaa. Nämä suoritetaan vain, kun kutsut tätä funktioita. nub on oltava väliltä 0-15.
event_inherited() Suorittaa isännän vastaavan tapahtuman. Tämä toimii vain, jos instanssilla on isäntäobjekti.

Saat tietoa nykyisesllä hetkellä suoritettavasta tapahtumasta käyttämällä seuraavia vain-luku-muuttujia:

event_type* Nykyisen suoritettavan tapahtuman tyyppi.
event_number* Nykyisen suoritettavan tapahtuman numero.
event_object* Objektin, jolle nykyistä tapahtumaa suoritetaan, indeksi.
event_action* Suoritettavan toiminnon indeksi (0 on tapahtuman ensimmäinen jne.).