Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как исправить работу таймера в Delphi?

Алексей Сеченых Профи (502), закрыт 7 лет назад
Пишу код, чтоб прорисовывал падение с подскоком мячика (прорисовка в процедуре Cloud), но вместо каждого этапа прорисовки, он вырисовывает только первое и конечное положение.

procedure TForm1.Timer2Timer(Sender: TObject);
var n,i:integer;
begin
i:=V;
while i<ClientHeight-22 do
begin
if y0<=ClientHeight-22 then
for y0 := y0 to ClientHeight-22 do
begin
// y0:=y0+5;
Cloud(x0,y0,clBlack);
end;
i:=i+((ClientHeight-i) div 3);
if y0>=i then
for Y0 := Y0 DownTo i do
begin
// y0:=y0-5{- sqr(n)};
x0:=x0+1;
Cloud(x0,y0,clBlack);
end;
end;
Timer2.Enabled:=False;
end;

procedure TForm1.Cloud(x, y: Integer; ColorCloud: TColor);
begin
with Image1.Canvas do begin
FillRect(Rect(0,0,Width,Height));
Ellipse(x0-22,y0-22,x0+22,y0+22);
end;
end;
Лучший ответ
Алекс Куха Высший разум (452108) 8 лет назад
таймер нельзя исправить, им надо правильно пользоваться
Остальные ответы
www www Искусственный Интеллект (125257) 8 лет назад
А зачем вы все рисование впихнули в таймер в т. ч. циклы?
Вам в таймере нужно 3 действия:
проверить не достигнут ли край и если да то изменить флаг направления движения
сместить мяч
перерисовать мяч.
ВСЕ.
Похожие вопросы