マウス ボタンを押したときにカーソルの外観を変更する Allegro 5 プログラムを作成したいと考えています。私が理解している限り、このステートメントevents.type!=ALLEGRO_EVENT_MOUSE_BUTTON_UP
は決して false にはなりません。しかし、ボタンを離した後、ループが停止しないため、理由がわかりません。私の間違いがどこにあるのか、より良い代替方法があれば教えていただけますか?
while(loop){
al_clear_to_color(al_map_rgb(0,0,0));
ALLEGRO_EVENT events;
al_wait_for_event(event_queue, &events);
if(events.type == ALLEGRO_EVENT_DISPLAY_CLOSE){
loop=false;
}
if(events.type == ALLEGRO_EVENT_MOUSE_AXES ){
x=events.mouse.x;
y=events.mouse.y;
buffer = released;
}
if( events.type==ALLEGRO_EVENT_MOUSE_BUTTON_DOWN)
while (events.type!=ALLEGRO_EVENT_MOUSE_BUTTON_UP){
x=events.mouse.x;
y=events.mouse.y;
al_draw_bitmap(pressed, x , y , NULL );
al_flip_display();
al_clear_to_color(al_map_rgb( 0 , 0 , 0));
}
al_draw_bitmap(released, x , y , NULL );
al_flip_display();
}