Program Mashina;
uses GraphABC;
var x :integer;
begin
for x:=0 to 1000 do
begin
LockDrawing;
ClearWindow;
SetWindowSize(1000,200);
SetBrushColor(clRed);
RoundRect(x+100,100,x+380,150,10,10);
SetBrushColor(clBlack);
Circle(x+300,160,30);
Circle(x+150,160,30);
SetBrushColor(clWhite);
Circle(x+150,160,15);
Circle(x+300,160,15);
SetBrushColor(clYellow);
Ellipse(x+360,125,x+375,105);
SetBrushColor(clBlack);
Rectangle(x+150,50,x+250,61);
Line(x+125,100,x+150,50);
Line(x+135,100,x+155,60);
FloodFill(x+127,98,clBlack);
Line(x+250,50,x+280,100);
Line(x+245,60,x+270,100);
Floodfill(x+275,98,clBlack);
Rectangle(x+125,100,x+135,150);
Rectangle(x+280,100,x+270,150);
Rectangle(x+195,60,x+205,150);
Rectangle(x+135,100,x+270,90);
Redraw;
end;
end.
Другие языки программирования и технологии

Паскаль. Анимация. Как по нажатию на кнопку заставить машину ехать в обратную сторону?
program Mashina;
uses
GraphABC;
procedure CreateCarPic(var p: picture);
begin
p := picture.Create(400, 300);
with p do
begin
SetBrushColor(clRed);
RoundRect(100, 100, 380, 150, 10, 10);
SetBrushColor(clBlack);
Circle(300, 160, 30);
Circle(150, 160, 30);
SetBrushColor(clWhite);
Circle(150, 160, 15);
Circle(300, 160, 15);
SetBrushColor(clYellow);
Ellipse(360, 125, 375, 105);
SetBrushColor(clBlack);
Rectangle(150, 50, 250, 61);
Line(125, 100, 150, 50);
Line(135, 100, 155, 60);
FloodFill(127, 98, clBlack);
Line(250, 50, 280, 100);
Line(245, 60, 270, 100);
Floodfill(275, 98, clBlack);
Rectangle(125, 100, 135, 150);
Rectangle(280, 100, 270, 150);
Rectangle(195, 60, 205, 150);
Rectangle(135, 100, 270, 90);
end;
end;
var
x: integer;
p: picture;
procedure DwarPic();
begin
LockDrawing;
ClearWindow;
p.draw(x, 0);
Redraw;
end;
procedure KeyDown(Key: integer);
begin
case Key of
VK_Left: dec(x, 5);
VK_Right: inc(x, 5);
end;
DwarPic();
end;
begin
SetWindowSize(1000, 200);
CreateCarPic(p);
x := 300;
KeyDown(0);
OnKeyDown := KeyDown;
end.
uses
GraphABC;
procedure CreateCarPic(var p: picture);
begin
p := picture.Create(400, 300);
with p do
begin
SetBrushColor(clRed);
RoundRect(100, 100, 380, 150, 10, 10);
SetBrushColor(clBlack);
Circle(300, 160, 30);
Circle(150, 160, 30);
SetBrushColor(clWhite);
Circle(150, 160, 15);
Circle(300, 160, 15);
SetBrushColor(clYellow);
Ellipse(360, 125, 375, 105);
SetBrushColor(clBlack);
Rectangle(150, 50, 250, 61);
Line(125, 100, 150, 50);
Line(135, 100, 155, 60);
FloodFill(127, 98, clBlack);
Line(250, 50, 280, 100);
Line(245, 60, 270, 100);
Floodfill(275, 98, clBlack);
Rectangle(125, 100, 135, 150);
Rectangle(280, 100, 270, 150);
Rectangle(195, 60, 205, 150);
Rectangle(135, 100, 270, 90);
end;
end;
var
x: integer;
p: picture;
procedure DwarPic();
begin
LockDrawing;
ClearWindow;
p.draw(x, 0);
Redraw;
end;
procedure KeyDown(Key: integer);
begin
case Key of
VK_Left: dec(x, 5);
VK_Right: inc(x, 5);
end;
DwarPic();
end;
begin
SetWindowSize(1000, 200);
CreateCarPic(p);
x := 300;
KeyDown(0);
OnKeyDown := KeyDown;
end.


Я не умею в паскаль но скажу алгоритм:
цикл (пока не будет нажата кнопка ESC)
{
Считывать нажатия клавиш:
Если нажата arrowUP, тогда координата машины Y--
Если нажата arrowRight, тогда координата машины X++
...
Отрисовать машины по этим координатам (если она отрисовывается из нескольких примитивов, то отрисовывать эти примитивы относительно лоакльной системы координат, которая связана с координатам X и Y).
Ждать например 100 мс, иначе: все будет двигаться слишком быстро (зависит от мощности компа) .
}
цикл (пока не будет нажата кнопка ESC)
{
Считывать нажатия клавиш:
Если нажата arrowUP, тогда координата машины Y--
Если нажата arrowRight, тогда координата машины X++
...
Отрисовать машины по этим координатам (если она отрисовывается из нескольких примитивов, то отрисовывать эти примитивы относительно лоакльной системы координат, которая связана с координатам X и Y).
Ждать например 100 мс, иначе: все будет двигаться слишком быстро (зависит от мощности компа) .
}
Похожие вопросы
- как отключить имитацию нажатия правой кнопки мыши на палншете wacom intuos pen and touch?
- подскажите как зделать во Флеш(Action script), вот что - При нажатии на кнопку игровые кости должны произвольно выпадать
- Help! С функцией PlaySound на С#!!! Как остановить воспроизведение при нажатии на кнопку? Какие параметры должны быть???
- как сделать чтобы при нажатии на кнопку выводился заданный текст в Delphi. хелп
- - Как выглядят окна Windows с обратной стороны?
- QBasic - создание окошек при нажатии кнопки
- как в delphi сделать чтобы при нажатии на определенную кнопку выводился другой символ??
- Фреймы. Как сделать так, чтобы при нажатии кнопки, страничка открывалась в соседнем фрейме
- программа в паскале, составить обратную матрицу
- как сделать анимацию в паскале