Анимация: кораблик, облака, волны - Pascal ABC

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

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

Добрый вечер. Помогите, пожалуйста, с анимацией в паскале. Очень срочно. Буду очень вам признателен. Собственно сама задача: создать анимацию, что бы допустим кораблик плыл по волнам, на фоне анимированых облаков, собственно и анимированных волн. Есть два примера, один паровозик, а второй фон Вот примеры: Кораблик
И паровозик на фоне, надо сделать у кораблика такой же фон

Решение задачи: «Анимация: кораблик, облака, волны»

textual
Листинг программы
uses graphABC;
var xx, i: integer;
procedure rucovanue(x:integer);
begin
line(x+100,400,x+400,400);
line(x+30,350,x+430,350);
line(x+100,400,x+30,350);
line(x+400,400,x+430,350);
line(x+200,100,x+200,350);
line(x+45,300,x+400,300);
line(x+45,300,x+200,150);
line(x+200,150,x+400,300);
line(x+200,100,x+235,125);
line(x+200,150,x+235,125);
end;
procedure Obl (x,y: integer);
begin
// verh
setbrushcolor(clblue);
circle(x+25+random(5),y+random(5),15 +random(5));
circle(x+52+random(5),y+random(5),19 +random(5));
circle(x+80+random(5),y+random(5),15 +random(5));
end;
 
procedure Fon;
begin
setbrushcolor(clyellow);
circle(520,70,25);
end;
 
begin
xx:=500;
lockdrawing;
while true do
begin
clearwindow(clSkyBlue);
Fon;
rucovanue(xx);
for i:=1 to 3 do
Obl (i*100-50,i*50);
xx:=xx-5;
sleep(10);
redraw;
if xx<-700 then xx:=500;
end;
end.

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

  1. В начале кода подключается библиотека graphABC.
  2. Переменные xx и i объявлены как целочисленные.
  3. Создается процедура rucovanue, которая принимает целочисленный аргумент x и выполняет анимацию кораблика, облаков и волн.
  4. Выполняется анимация кораблика:
    • Строится линия от координат (x+100,400) до (x+400,400).
    • Строится линия от координат (x+30,350) до (x+430,350).
    • Строится линия от координат (x+100,400) до (x+30,350).
    • Строится линия от координат (x+400,400) до (x+430,350).
    • Строится линия от координат (x+200,100) до (x+200,350).
    • Строится линия от координат (x+45,300) до (x+400,300).
    • Строится линия от координат (x+45,300) до (x+200,150).
    • Строится линия от координат (x+200,150) до (x+400,300).
    • Строится линия от координат (x+200,100) до (x+235,125).
    • Строится линия от координат (x+200,150) до (x+235,125).
  5. Создается процедура Obl, которая принимает целочисленные аргументы x и y и выполняет вертикальную анимацию облаков.
  6. Создается процедура Fon, которая рисует желтый круг в левом верхнем углу экрана.
  7. Запускается бесконечный цикл:
    • Очищается окно clSkyBlue.
    • Рисуется Fon.
    • Рисуется rucovanue с текущим значением xx.
    • Для i от 1 до 3 выполняется Obl с аргументами (i100-50,i50).
    • Значение xx уменьшается на 5.
    • Выполняется пауза в 10 мс.
    • Красныеraw.
    • Если значение xx меньше или равно -700, то xx устанавливается равным 500.
  8. Конец программы.

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


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

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

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