Движение машины, убрать тень - Free Pascal
Формулировка задачи:
вот прога. движение объекта получается с "тенью". как ее убрать? можно ли обойтись без
процедуры движения..?
___________
uses crt, graph; var gd, gm, a,b: integer; procedure car (x,y: integer); begin setcolor (yellow); line (x,y, x+80, y); line (x+80,y,x+120, y+40); line (x+120, y+40, x+160, y+40); line (x+160, y+40, x+160, y+80); line (x+160, y+80, x-40, y+80); line (x-40, y+80, x-40, y+40); line (x-40, y+40, x-20, y+40); line (x-20, y+40, x, y); circle (x+20, y+80, 20); circle (x+100, y+80, 20); end; begin gd:=detect; a:=200; b:=200; initgraph (gd, gm, ' '); repeat car (a,b); delay (100); car(a,b); a:=a+25 until keypressed; closegraph; end.
Решение задачи: «Движение машины, убрать тень»
textual
Листинг программы
uses wincrt, graph; procedure car (x,y: integer); begin setcolor (yellow); line (x,y, x+80, y); line (x+80,y,x+120, y+40); line (x+120, y+40, x+160, y+40); line (x+160, y+40, x+160, y+80); line (x+160, y+80, x-40, y+80); line (x-40, y+80, x-40, y+40); line (x-40, y+40, x-20, y+40); line (x-20, y+40, x, y); circle (x+20, y+80, 20); circle (x+100, y+80, 20); end; var gd, gm, a,b: integer; begin gd:=detect; a:=200; b:=200; initgraph (gd, gm, ' '); repeat cleardevice; car (a,b); delay (50); a:=a+5 until a>=getmaxX-160; readkey end.
Объяснение кода листинга программы
- Объявлены переменные
gd
,gm
,a
,b
типаinteger
. - Переменная
gd
инициализируется значениемdetect
. - Переменные
a
иb
инициализируются значением200
. - Вызов функции
initgraph
с аргументамиgd
,gm
,' '
для инициализации графического режима. - Запускается бесконечный цикл.
- В начале цикла экран очищается.
- Вызывается процедура
car
с аргументамиa
,b
. - После вызова процедуры
car
происходит задержка в 50 миллисекунд. - Значение переменной
a
увеличивается на 5. - Цикл продолжается до тех пор, пока значение переменной
a
не станет большеgetmaxX-160
. - В конце цикла вызывается функция
readkey
для чтения нажатой клавиши. - В процедуре
car
происходит рисование автомобиля на экране. - Линии автомобиля рисуются с помощью функции
line
. - Функция
setcolor
используется для установки цвета на желтый. - Функция
circle
используется для рисования кругов. - Переменные
x
,y
используются в качестве аргументов для функцийline
иcircle
. - Значения переменных
x
,y
увеличиваются на 80 и 40 соответственно для рисования автомобиля. - В конце процедуры
car
происходит рисование колес автомобиля с помощью функцииcircle
. - Колеса автомобиля рисуются в двух разных местах на экране.
- Значения переменных
x
,y
увеличиваются на 100 для рисования второго колеса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д