Allegro C ++, как обновить удаление строк?

Привет, я пытался создать программу, в которой вы могли бы нарисовать линию от точки, где находится ваша мышь, но у меня возникли проблемы с выяснением, как удалить линию после того, как она была нарисована.

#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

Решение

Вам нужно будет сохранить координаты линий в какой-либо структуре данных (например, массив структур). Если вы хотите удалить строку, удалите ее из структуры данных.

Ваш код для рисования выглядит так:

  1. Очистить буфер
  2. Перебирать каждую строку, рисуя ее в буфер
  3. Нарисуйте буфер на экран

И не вызывайте экран приобретения / выпуска. Они, как правило, не нужны, и вы будете создавать себе много проблем, если будете их неправильно использовать.

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector