Реализовать движение рыбы и облаков - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Здраствуйте!Я нарисовала рисунок,но не могу сделать из него анимацию.Нужно чтобы рыба и по возможности облака двигались(как можно больше движении).не получается раскрасить плавники Не могли бы вы мне помочь,пожалуйста. Вот сама программа:

Решение задачи: «Реализовать движение рыбы и облаков»

textual
Листинг программы
Program sea;
uses graphABC;
procedure fon;
begin
SetbrushColor(clAquamarine);
Rectangle(0,0,windowwidth,windowheight div 2);
SetbrushColor(clDeepSkyBlue);
Rectangle(0,windowheight div 2,windowwidth,windowheight);
SetPenColor(clYellow);
SetBrushColor(clYellow);
Circle(70,70,50);
end;
procedure clouds(x,y:integer);
begin
SetPenColor(clcadetblue);
SetBrushColor(clcadetblue);
Circle(x-100,y,30);
Circle(x-50,y,45);
Circle(x,y,30);
end;
procedure fish(x,y:integer);
var p:array of Point;
begin
//hwost
setlength(p,4);
p[0].X:=x;p[0].Y:=y;
p[1].X:=x+80; p[1].Y:=y-20;
p[2].X:=x+80; p[2].Y:=y+20;
p[3]:=p[0];
SetPenColor(clRed);
SetBrushColor(clRed);
polygon(p);
//plavnikn
p[0].X:=x-20;p[0].Y:=y+20;
p[1].X:=x+40; p[1].Y:=y+20;
p[2].X:=x+30; p[2].Y:=y+40;
p[3]:=p[0];
SetPenColor(clRed);
SetBrushColor(clRed);
polygon(p);
p[0].X:=x-40;p[0].Y:=y-20;
p[1].X:=x+40; p[1].Y:=y-20;
p[2].X:=x+30; p[2].Y:=y-40;
p[3]:=p[0];
SetPenColor(clRed);
SetBrushColor(clRed);
polygon(p);
//tulovishe
SetPenColor(clMistyRose);
SetBrushColor(clMistyRose);
Ellipse(x-60,y-30,x+60,y+30);
//glaza
SetPenColor(clRed);
SetBrushColor(clRed);
Circle(x-35,y-10,10);
SetPenColor(clBlack);
SetBrushColor(clBlack);
Circle(x-35,y-10,4);
SetPenColor(clBlack);
line(x-40,y+15,x-10,y-10);//rot
end;
var x1,x2,x3,y1,y2,y3,x4,y4:integer;
begin
SetWindowSize(800, 500);
CenterWindow;
x1:=400;y1:=60;
x2:=600;y2:=80;
x3:=800;y3:=70;
x4:=windowwidth-80;y4:=windowheight-100;
fon;
clouds(x1,y1);
clouds(x2,y2);
clouds(x3,y3);
fish(x4,y4);
lockdrawing;
repeat
ClearWindow;
fon;
clouds(x1,y1);
clouds(x2,y2);
clouds(x3,y3);
fish(x4,y4);
sleep(10);
x1:=x1-1;
x2:=x2-1;
x3:=x3-1;
x4:=x4-2;
redraw;
until x4<-80;
end.

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

  1. В программе sea используется библиотека graphABC, которая, вероятно, предназначена для работы с графиками в Pascal ABC.
  2. В начале программы определен ряд переменных, которые будут использоваться в дальнейшем: x1, x2, x3, y1, y2, y3, x4, y4. Эти переменные представляют координаты четырех точек: двух точек рыбы и двух точек облаков.
  3. Затем вызывается функция fon, которая рисует фоновый рисунок. В этой функции используются цвета clAquamarine (аквамарин) и clDeepSkyBlue (глубокий синий), а также оператор Rectangle для рисования прямоугольника.
  4. Далее определена функция clouds, которая рисует облака. Эта функция использует цвета clcadetblue (нежно-голубой) и clBlack (черный), а также операторы Circle и Line для рисования кругов и линий.
  5. Наконец, определена функция fish, которая рисует рыбу. В этой функции используются цвета clRed (красный) и clBlack (черный), а также массив p для хранения точек рыбы. Функция polygon используется для создания полигона из этих точек.
  6. После этого вызывается clouds для рисования облаков вокруг каждой из четырех точек рыбы.
  7. Затем вызывается sleep(10), чтобы задержать выполнение программы на 10 секунд, и цикл повторяется. В цикле точки рыбы смещаются на одну единицу влево, а точки облаков смещаются на одну единицу вниз. Когда точка справа от рыбы достигает края окна, цикл прекращается.

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

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