Нарисовать ночное небо, через которое периодически будет пролетать НЛО. Выход с программы по нажатию клавиши - PascalABC.NET
Формулировка задачи:
Нарисовать ночное небо, через которое периодически будет пролетать НЛО. Выход с программы по нажатию клавиши.
Код у меня есть, но когда НЛО пролетает за ним остается след и я не знаю как это убрать. Есть функция Redraw, но я не понял как её использовать. Помогите убрать след от полёта)
Вот код:
Решение задачи: «Нарисовать ночное небо, через которое периодически будет пролетать НЛО. Выход с программы по нажатию клавиши»
textual
Листинг программы
uses graphABC,events;//с модулем Crt сильно мигает при настройке графического окна type mas=array[1..2,1..100] of integer; var f:boolean; procedure KeyPress(key:char); begin if key<>#0 then f:=false; end; procedure nebo(a:mas); var i:integer; begin setbrushcolor(clwhite); for i:=1 to 100 do //цикл для расположения звёзд на небе. circle(a[1,i],a[2,i],3); end; procedure nlo(x,y:integer); begin setpencolor(clwhite); setbrushcolor(clgray); circle(x,y,100); circle(x,y,50); end; var a:mas; i,x,y: integer; begin setwindowsize(900,600); centerwindow; clearwindow(clblack); for i:=1 to 100 do begin a[1,i]:=random(windowwidth); a[2,i]:=random(windowheight); end; f:=true; onkeypress:=KeyPress; lockdrawing; x:=100; y:=windowheight div 2; repeat clearwindow(clblack); nebo(a); nlo(x,y); sleep(50); x:=x+5; if x>=windowwidth+100 then x:=100; redraw; until not f; end.
Объяснение кода листинга программы
- Объявлены переменные:
- f: boolean;
- a: mas;
- i, x, y: integer;
- Установлены размеры окна и его расположение в центре экрана.
- Очищено окно.
- Заполнены массивы a[1,i] и a[2,i] случайными значениями.
- Установлен обработчик события нажатия клавиши.
- Начался цикл рисования, который повторяется до тех пор, пока не будет нажата клавиша.
- В начале каждого цикла рисуется ночное небо с звездами и НЛО.
- После каждой итерации цикла меняется положение НЛО, сдвигаясь вправо на 5 пикселей.
- Если положение НЛО выходит за пределы окна, оно возвращается к начальному положению (x=100).
- После каждой итерации цикла программа
спит
на 50 миллисекунд, чтобы создать эффект мигания НЛО. - По завершении цикла программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д