Top.Mail.Ru
Ответы

Движение фигуры в pascal abc. Что делать, если уже написала программу и анимация мерцает очень сильно, что поменять?

Движение фигуры в паскале. Что делать, если уже написала программу для движения фигуры (гусеницы) и анимация мерцает очень сильно, что поменять?
uses crt, graphabc;
var x,y:integer;
begin
y:=100;
for x:=10 to 40 do
begin
setbrushColor(clblack);
circle(x+150,350,50);
floodfill(149,350,clgreen);

setbrushColor(clblack);
circle(x+250,350,50);
floodfill(240,351,clgreen);

setbrushColor(clblack);
circle(x+350,350,50);
floodfill(340,351,clgreen);

setbrushColor(clblack);
circle(x+350,249,50);
floodfill(340,250,clgreen);

setbrushColor(clblack);
circle(x+350,148,50);
floodfill(340,150,clgreen);

setbrushColor(clblack);
circle(x+335,145,5);
setbrushColor(clblack);
circle(x+365,145,5);
setbrushColor(clblack);
moveto(x+350,140);
lineto(x+350,165);
arc(x+350,170,10,200,360);
moveto(x+320,110);
lineto(x+285,70);
circle(x+285,70,5);
moveto(x+380,110);
lineto(x+415,70);
circle(x+415,70,5);
delay(100);
ClearWindow(clwhite);
end;

end.

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Введи в нужных местах команду задержки продолжения работы программы Sleep(30); где в скобках время в миллисекундах (1000 это 1 секунда)

Аватар пользователя
Искусственный Интеллект
7лет

Ничего, она и будет мерцать из-за перерисовки холста постоянной

Аватар пользователя
Просветленный
7лет

программа выдает где-то неверное окрашивание, но разбираться нет сильного желания, да и вопрос был про снятие мерцания ))) с окрашиванием думаю автор разберется

uses graphabc;
var x,y:integer;
begin
y:=100;
LockDrawing;
for x:=10 to 40 do

begin
window.clear;
setbrushColor(clblack);
circle(x+150,350,50);
floodfill(149,350,clgreen);

setbrushColor(clblack);
circle(x+250,350,50);
floodfill(240,351,clgreen);

setbrushColor(clblack);
circle(x+350,350,50);
floodfill(340,351,clgreen);

setbrushColor(clblack);
circle(x+350,249,50);
floodfill(340,250,clgreen);

setbrushColor(clblack);
circle(x+350,148,50);
floodfill(340,150,clgreen);

setbrushColor(clblack);
circle(x+335,145,5);
setbrushColor(clblack);
circle(x+365,145,5);
setbrushColor(clblack);
moveto(x+350,140);
lineto(x+350,165);
arc(x+350,170,10,200,360);
moveto(x+320,110);
lineto(x+285,70);
circle(x+285,70,5);
moveto(x+380,110);
lineto(x+415,70);
circle(x+415,70,5);
ReDraw;
end;

end.