ЛР
Лида Русланова

Модуль Graph Pascal, как сделать чтобы машинки не выходили за границы?

uses

GraphABC;



type

avto=class

private

x :integer;

y :integer;

public

constructor Create (xx,yy:integer);

Procedure Show;

procedure Move(dx,dy:integer);

end;



constructor avto.Create(xx, yy: integer);

begin

x:=xx;

y:=yy;

end;



procedure avto.Show;

begin

setpencolor(clBlack);

setbrushcolor(clGreen);

rectangle(x,y,x-80,y+40);

setbrushcolor(clskyBlue);

rectangle(x-80,y+10,x-105,y+25);

setbrushcolor(clBlue);

rectangle(x-80,y+25,x-105,y+40);

setbrushcolor(clBlack);

circle(x-20,y+40,10);

circle(x-93,y+40,10);

end;



procedure avto.Move(dx, dy: integer);

begin

x := x + dx;

y := y + dy;

end;



var

Automobil: array[1..4] of avto;

i: integer;

begin

SetWindowSize(660, 540);

for i:=1 to 4 do

begin

Automobil[i] := avto.Create(400, 230);

Automobil[i].Show;

end;

lockdrawing;

for i := 1 to 195 do

begin

clearwindow;

Automobil[1].Show;



Automobil[2].Show;

Automobil[3].Show;

Automobil[4].Show;

sleep(10);

Automobil[1].Move(0, -2);

Automobil[2].Move(-2, 0);

Automobil[3].Move(2, 0);

Automobil[4].Move(0, 2);

redraw

end;



end.

ВВ
Влад Востриков

Последний цикл сделать не от 1 до 195, а от 1 до, например, 95:
for i := 1 to 95 do

Андрей
Андрей

Код не читал, но в общем это делается так - при изменении позиции проверяешь - находится ли она в допустимых пределах, если уже нет - позиция не меняется (или там машина взрывается).

Дм
Дмитрий

желательно к avto добавить область видимости, и при отрисовке учитывать это

Похожие вопросы
Проверьте, правильно ли я сделала задачу. Pascal.
как сделать графический рисунок в pascal abc ?
задание по Graph для Pascal. Написать программу которая нарисует прямоугольник и его диагонали
Помогите с массивами в Pascal с модулем Graph
как вызываются модули типа procedure и function в pascal abc?
Проблемы с модулем graph (free pascal)
заменить положительные элементы массива матрицы их целыми частями а отрицательные их модулями (Pascal)
как передать массив в модуль Pascal, выполнить над ним действие, и вернуть обратно в программу?
joomla сделать плагин или модуль?
Pascal. Модуль CRT. Как считать символ с экрана, зная его координаты?