Анимация: движущееся изображение лодки по реке - PascalABC.NET
Формулировка задачи:
Добрый день, господа программисты! Возникла у меня сложность, а именно такая: построить движущееся изображение лодки по реке. Задача вроде не сложная, но никак не дойдет мой мозг до решения. Буду очень рада помощи извне. За ранее спасибо!
Решение задачи: «Анимация: движущееся изображение лодки по реке»
textual
Листинг программы
uses graphABC; procedure fon; begin setbrushcolor(clForestGreen); rectangle(0,0,windowwidth,windowheight); setbrushcolor(clSkyBlue); rectangle(0,windowheight div 3,windowwidth,windowheight div 2+100); end; procedure lodka(x,y:integer); begin setpencolor(clSilver); setbrushcolor(clSilver); polygon((x,y-20),(x-30,y),(x-100,y),(x-100,y-15),(x,y-20)); setpencolor(clBlue); setbrushcolor(clBlue); roundrect(x-108,y-25,x-98,y-13,5,5); rectangle(x-105,y-13,x-101,y); setpencolor(clBlack); setbrushcolor(clBlack); circle(x-90,y-35,5); rectangle(x-95,y-30,x-85,y-15); end; var x,y:integer; begin x:=120; y:=windowheight div 2; lockdrawing; repeat clearwindow; fon; lodka(x,y); sleep(50); x:=x+5; redraw; until x>=windowwidth; end.
Объяснение кода листинга программы
- В данном коде используется язык программирования PascalABC.Net.
- Код начинается с процедуры
fon
, которая отвечает за рисование фона. С помощью функцииsetbrushcolor
задается цвет фона (зеленый), а затем с помощью функцииrectangle
рисуется прямоугольник, соответствующий размерам окна. - Далее следует процедура
lodka
, которая отвечает за рисование лодки. Она принимает два аргумента типаinteger
:x
иy
, которые представляют координаты лодки на экране. Внутри процедуры используются функцииsetpencolor
иsetbrushcolor
, чтобы задать цвет обводки и заливки лодки (серебристый и синий соответственно). Затем с помощью функцииpolygon
рисуется контур лодки, а с помощью функцииroundrect
иrectangle
рисуется палуба и окна лодки. - Далее следуют две переменные
x
иy
типаinteger
, которые используются в качестве координат для рисования лодки. - Основная часть кода начинается с цикла
repeat-until
, который повторяет рисование лодки и изменение координатx
иy
на 5 каждый раз, покаx
не достигнет значенияwindowwidth
. - В конце кода есть строка
redraw
, которая перерисовывает все изменения, сделанные во время выполнения программы. - Перед началом цикла программа блокирует рисование с помощью функции
lockdrawing
, чтобы предотвратить перекрытие рисунка другими программами или процессами. - В конце цикла программа заканчивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д