Эй, во-первых, я просто хочу сказать, что я полный новичок в Allegro и в значительной степени только что начал. То, что я хочу сделать, это удерживать линию на экране в течение секунды, но затем исчезнуть. Прямо сейчас все, что происходит, это то, что линия просто остается на экране.
Вот мой код:
#include <allegro.h>
#include <cstdlib>
BITMAP *buffer;
int main(){
allegro_init();
install_mouse();
install_keyboard();
set_color_depth(16);
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);
buffer = create_bitmap( 640, 480);
while( !key[KEY_ESC]){if (key[KEY_SPACE]){
line( buffer, 30, 450, mouse_x, mouse_y, makecol( 255, 0, 0));
}
draw_sprite( screen, buffer, 0, 0);
release_screen();
rest(10);
}
return 0;
}
END_OF_MAIN();
Здесь происходит то, что вы просто многократно рисуете линию в одном и том же месте, даже не очищая экран. Вы можете очистить экран с помощью:
clear_to_color(buffer,makecol(r,g,b));
Самое простое решение — добавить эту строку, используя предпочитаемые значения RGB, в начало цикла.
Других решений пока нет …