1

ポイントからマウスの位置まで線を引くことができるプログラムを作成しようとしていましたが、描画後に線を削除する方法がわかりません。

#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

1

線の座標を何らかのデータ構造 (構造体の配列など) に格納する必要があります。行を削除する場合は、データ構造から削除します。

描画コードは次のようになります。

  1. バッファをクリア
  2. すべての行を繰り返し、バッファに描画します
  3. バッファーを画面に描画する

また、画面の取得/解放を呼び出さないでください。それらは通常は必要ありません。誤って使用すると、多くの問題が発生します。

于 2013-01-26T19:05:47.630 に答える