Нарисовать ночное небо, через которое периодически будет пролетать НЛО. Выход с программы по нажатию клавиши - 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.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • f: boolean;
    • a: mas;
    • i, x, y: integer;
  2. Установлены размеры окна и его расположение в центре экрана.
  3. Очищено окно.
  4. Заполнены массивы a[1,i] и a[2,i] случайными значениями.
  5. Установлен обработчик события нажатия клавиши.
  6. Начался цикл рисования, который повторяется до тех пор, пока не будет нажата клавиша.
  7. В начале каждого цикла рисуется ночное небо с звездами и НЛО.
  8. После каждой итерации цикла меняется положение НЛО, сдвигаясь вправо на 5 пикселей.
  9. Если положение НЛО выходит за пределы окна, оно возвращается к начальному положению (x=100).
  10. После каждой итерации цикла программа спит на 50 миллисекунд, чтобы создать эффект мигания НЛО.
  11. По завершении цикла программа завершается.

ИИ поможет Вам:


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

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы