Анимация в паскаль
Анимация в паскаль Движение графического объекта в паскаль
В этой статье мы научимся перемещать графические объекты программах на паскаль, т.е. создавать анимацию на паскаль
Для эффекта передвижения на экране в программе паскаль, необходимо рисовать графический объект после паузы стирать его и рисовать с новыми координатами.
Общая структура программы для анимации на паскаль
for i:=1 to n do
begin
1 нарисовать объект,
2 подождать какое-то время с помощью команды sleep(время паузы);
3 очистить экран
4 изменить координаты объекта согласно направлению движения и его скорости
end;
5 рисуем конечное положение объекта
Напишем простейшую программу на паскаль, которая перемещает окружность по экрану. Для начала работы с графикой в программах на pascal, необходимо в начале программы подключить графический модуль с помощью команды
uses GraphABC; подробно о работе с графикой в pascal abc.
Простейшая программа на паскаль, в которой окружность перемещается по экрану
uses GraphABC;
var i,x : integer;
begin
setWindowSize(500, 500);
clearwindow(clBlack);
for i:=1 To 100 do
begin
SetPenColor(clBlack);
circle(i,50,20);
sleep(10);
clearwindow();
end;
SetPenColor(clBlack);
circle(i,50,20);
end.
Для того, чтобы запрограммировать перемещение более сложного объекта в графическом режиме паскаль, необходимо создать процедуру рисования объекта, в которую будут передаваться координаты объекта. Тогда структура программы на паскаль для движения сложного объекта
for i:=1 to n do
begin
1 вызвать процедуру рисования объекта с координатами x и y
2 подождать какое-то время с помощью команды sleep(время паузы);
3 очистить экран
4 изменить координаты объекта согласно направлению движения и его скорости
x=x+vx;
y=y+vy;
end;
5 вызвать процедуру рисования объекта с координатами x и y
Напишем программу для передвижения изображения автомобиля по экрану на паскале. Для этого предварительно напишем процедуру, которая рисует изображение автомобиля по координатам. В процедуру передаются координаты x и y, это координаты левого верхнего угла машины, относительно них создаются все объекты машины. Родробно о процедурах в паскаль
procedure car (x, y : integer);
begin
rectangle (x,y,x+100,y+40);
floodfill (x+1, y+1, clRed);
circle (x+20,y+40,15);
floodfill (x+20, y+40, clGray);
circle (x+60,y+40, 15);
floodfill (x+60, y+40, clGray);
rectangle (x+20, y-30, x+70, y);
floodfill(x+22,y-2, clRed);
end;
В теле программы создаются начальные координаты и скорость
x :=100;
y :=200;
v :=2;
В цикле for выполняем алгоритм анимации
for i:=1 To 50 do
begin
SetPenColor(clBlack);
car(x,y);
sleep(10);
clearwindow();
x := x+v;
end;
После цикла for отрисовываем конечное положение автомобиля.
car(x,y);
Полный текст программы для передвижения автомобиля по экрану на паскале
uses GraphABC;
var i,x,y, v : integer;
procedure car (x, y : integer);
begin
rectangle (x,y,x+100,y+40);
floodfill (x+1, y+1, clRed);
circle (x+20,y+40,15);
floodfill (x+20, y+40, clGray);
circle (x+60,y+40, 15);
floodfill (x+60, y+40, clGray);
rectangle (x+20, y-30, x+70, y);
floodfill(x+22,y-2, clRed);
end;
begin
setWindowSize(500, 500);
clearwindow(clBlack);
x :=100;
y :=200;
v :=2;
for i:=1 To 50 do
begin
SetPenColor(clBlack);
car(x,y);
sleep(10);
clearwindow();
x := x+v;
end;
car(x,y);
end.
Перейти к содержанию курса Паскаль
Полезно почитать по теме графика на паскаль
Поделиться:
Нет комментариев. Ваш будет первым!