Allegro更新图纸

时间:2013-01-26 18:37:17

标签: c++ windows 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 个答案:

答案 0 :(得分:0)

这里发生的是你只是在同一个地方重复画线,而不是清除屏幕。您可以使用以下方式清除屏幕:

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

最简单的解决方案是使用您喜欢的RGB值将此行添加到循环的开头。