• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Нужно в Паскале нарисовать анимацию

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Кран поднимает некоторый груз, перемещая с одного места на другое.

Значит есть груз Rectangle(250,525,350,588); я его поднимаю вверх

i:=1;
repeat
setcolor(white);
Rectangle(250,525-i,350,588-i);
delay(10);
setcolor(black);
Rectangle(250,525-i,350,588-i);
if i<280 then i:=i+1;
until ;

Что нужно написать в until если надо чтобы груз потом на экране остался?? и далее я хочу нарисовать под ним линию что для этого нужно сделать?

Помогите пожажуйста!!!
 
N

nayke

Что нужно написать в until если надо чтобы груз потом на экране остался?? и далее я хочу нарисовать под ним линию что для этого нужно сделать?

Помогите пожажуйста!!!

until - условие для выхода судя по всему i=280

не помню точно но помоему в паскале линия рисуется moveTo(перемещаемся в точку откуда рисуем) -LineTo(рисуем линию от начальной точки до задаваемой).
 
G

Guest

until - условие для выхода судя по всему i=280

не помню точно но помоему в паскале линия рисуется moveTo(перемещаемся в точку откуда рисуем) -LineTo(рисуем линию от начальной точки до задаваемой).




это да, но я пишу ниже этого ничего не выходит...
 
N

nayke

это да, но я пишу ниже этого ничего не выходит...
что именно пишите что не выходит.. может подробнее?

Да и не сразу увидел что у вас анимация. поставте Sleep(100) после REPEAT. Может это имелось ввиду/
Хотя в паскале она наверное называлась delay
 
A

acorn

Да и не сразу увидел что у вас анимация. поставте Sleep(100) после REPEAT. Может это имелось ввиду/
Хотя в паскале она наверное называлась delay
есть там delay


а так должен груз остаться, хоть и код топорный, переделан из вашего
Код:
i:=1;
repeat
setcolor(white);
Rectangle(250,525-i,350,588-i);
delay(10);
setcolor(black);
Rectangle(250,525-i,350,588-i);
if i<280 then i:=i+1;
until i = 280;

setcolor(white);
Rectangle(250,525-i,350,588-i);
 
D

Dock1100

а может:
Код:
for i:=1 to 140 do
begin
setcolor(white);
moveto(250+50,325-i);
Lineto(250+50,525-i);
setcolor(black);
Rectangle(250,525-i,350,588-i);
delay(10);
end;
 
G

Guest

а может:
Код:
for i:=1 to 140 do
begin
setcolor(white);
moveto(250+50,325-i);
Lineto(250+50,525-i);
setcolor(black);
Rectangle(250,525-i,350,588-i);
delay(10);
end;



Вот мне надо чтобы линия по горизонтали выехала с начала экрана))

Добавлено:
а может:
Код:
for i:=1 to 140 do
begin
setcolor(white);
moveto(250+50,325-i);
Lineto(250+50,525-i);
setcolor(black);
Rectangle(250,525-i,350,588-i);
delay(10);
end;



Вот мне надо чтобы линия по горизонтали выехала с начала экрана))
 
D

Dock1100

Код:
for i:=1 to 140 do
begin
setcolor(white);
moveto(250+50,0+i);
Lineto(250+50,200+i);
setcolor(black);
Rectangle(250,0+i,350,(588-525)+i);
delay(10);
end;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!