1

嘿,首先我只想说我是 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();
4

1 回答 1

0

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

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

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

于 2013-02-16T07:50:57.680 回答