Аллегро обновляющий рисунок

Эй, во-первых, я просто хочу сказать, что я полный новичок в 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();

1

Решение

Здесь происходит то, что вы просто многократно рисуете линию в одном и том же месте, даже не очищая экран. Вы можете очистить экран с помощью:

clear_to_color(buffer,makecol(r,g,b));

Самое простое решение — добавить эту строку, используя предпочитаемые значения RGB, в начало цикла.

0

Другие решения

Других решений пока нет …