Professional Documents
Culture Documents
Expanding Allegro_Time_Loop
Developer: Amar Tufo
Datum: 1. Oktobar, 2015
Zadatak:
ALLEGRO_EVENT ev;
al_wait_for_event(event_queue, &ev);
U osnovi ovom linijom koda ( al_wait_for_event(event_queue, &ev);) Allegro eka
na odreeni event kako bi reagovao i izvravao ono to mu izvorni kod diktira.
Recimo, eka da korisnik pritisne odreeni taster na tastaturi koji zatim biva
zabiljeen u varijabli ev koja provjerava da li je odreena tipka na tastaturi
pritisnuta ukoliko jeste program e nastaviti svoje izvravanje ili e se prekinuti.
I posljednje to treba da uinimo jeste da implementiramo nain zatvaranja
programa pritiskom tastera escape to bi izgledalo ovako:
if (ev.type == ALLEGRO_EVENT_KEY_UP)
{
if (ev.keyboard.keycode == ALLEGRO_KEY_ESCAPE)
exit = true; //program se zatvara
}
Evo o emu se ovdje radi. Nakon to korisnik pritisne taster escape, Alelgro
provjerava da li je ista tipka pritisnuta. Nakon to korisnik otpusti taster escape onda
se program zatvara exit = true;. Relativno je jednostavna implementacija ovakve
rutine za zatvaranje jer u vaoj igrici elite da korisnik prekine nasilno program
pritiskom escape tastera ukoliko se on zaledi i glavni meni postane neodzivan ili
bagovit.
Sada bi na cio kod implementacije escape rutine za zatvaranje izgledao ovako.
int main( ){
bool exit = false;
//install allegro primitives
al_initialise_primitives_addon( );
//install keyboard
al_install_keyboard( );
//register keyboard source
event_queue = al_create_event_queue();
al_register_event_source(event_queue, al_get_keyboard_event_source( ));
640/2,
480/2,