Анимация: кораблик, облака, волны - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека graphABC.
- Переменные xx и i объявлены как целочисленные.
- Создается процедура rucovanue, которая принимает целочисленный аргумент x и выполняет анимацию кораблика, облаков и волн.
- Выполняется анимация кораблика:
- Строится линия от координат (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).
- Создается процедура Obl, которая принимает целочисленные аргументы x и y и выполняет вертикальную анимацию облаков.
- Создается процедура Fon, которая рисует желтый круг в левом верхнем углу экрана.
- Запускается бесконечный цикл:
- Очищается окно clSkyBlue.
- Рисуется Fon.
- Рисуется rucovanue с текущим значением xx.
- Для i от 1 до 3 выполняется Obl с аргументами (i100-50,i50).
- Значение xx уменьшается на 5.
- Выполняется пауза в 10 мс.
- Красныеraw.
- Если значение xx меньше или равно -700, то xx устанавливается равным 500.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д