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