0
Je fais un devoir de mon cours en utilisant Allegro, comme ordonné.Bug sur les événements de clé dans allegro
J'ai besoin de prendre la clé des événements sur le clavier, pour cela, j'utilisé le code de suivi:
al_wait_for_event(evento, &ev);
if(ev.type == ALLEGRO_EVENT_KEY_UP){
if (ev.keyboard.keycode==ALLEGRO_KEY_A || ev.keyboard.keycode==ALLEGRO_KEY_LEFT)
cmd='a';
else if (ev.keyboard.keycode==ALLEGRO_KEY_W || ev.keyboard.keycode==ALLEGRO_KEY_UP)
cmd='w';
else if (ev.keyboard.keycode==ALLEGRO_KEY_D || ev.keyboard.keycode==ALLEGRO_KEY_RIGHT)
cmd='d';
else if (ev.keyboard.keycode==ALLEGRO_KEY_S || ev.keyboard.keycode==ALLEGRO_KEY_DOWN)
cmd='s';
}
Mais cet événement renvoie la valeur 6 fois à la fois!
Sur le code que j'ai inclus (précédemment) cette commande:
al_install_keyboard();
[...]
al_register_event_source(evento, al_get_keyboard_event_source());
Où suis-je tort?
ALLEGRO_EVENT_KEY_DOWN et l'événement UP ne fait pas référence aux événements de bouton de pression et de relâchement, mais à l'état enfoncé des touches HAUT et BAS – 648trindade