Miganie przy animacji w Delphi7

0

Witam
Mam problem tego typu ze gdy robie animacje to ciągle miga. dokłądnie mam zdjęcie i ono zjeżdza w dół i poza pewnym obszarem nie powinno go być widać ale ono przebija (migocze)
Probowałem właczyc doublebuffer ale to nic nie pomaga ale właczałem go w złym miejscu (próbowałem w FormCreate i FormPaint).

0

a dla jakiego komponentu je włączałeś?

0

Opisze mój problem troche szerzej. Rysuje bitmape, później w Timerze co 10ms zwiększam jego y o 5 aby poruszała sie w dół. Na dole jest zamalowywana prostokątem o kolorze tła. Moge podac fragment kodu jeżeli istnieje potrzeba

0

no możesz podać ale z tego co widzę to doublebuffered tu nic nie da skoro rysujesz za każdym razem po canvasie najpierw coś, potem prostokąt, więc

jeśli obrazek cały czas zczytujesz z pliku, to zamień to jednorazowym wczytaniem to zmiennej globalnej, potem stwórz pomocniczy canvas i na nim "w pamięci" rysuj ten obrazek, potem na nim prostokąt i gotowy canvas przekopiuj na canvas formy

0

(bitmapy zostały wczytane z dysku na samym początku w Formcreate)
chodzi mi o cos takiego (to jest tylko animacja:

procedure TForm1.Timer1Timer(Sender: TObject);
const x:integer=70;
y:integer=50;
Krok:integer=5;
begin
Timer1.Enabled:=true;
Canvas.Brush.Color:=color;
Canvas.pen.Color:=color;
Canvas.Draw(x,y-179, bitmap2);
Form1.Canvas.Rectangle(x,0,245, 50);
y:=y+krok;
Canvas.Draw(x,y, bitmap1);
Form1.Canvas.Rectangle(70,229,245 , 425 );
If y>=245 then
Begin
Krok:=0;
Timer1.Enabled:=false;
end;
end;

0

ale jak to ci niby działa ? jak możesz zwiększać wartości stałych i jak w ogóle niby to się przemieszcza skoro y cały czas wraca do tego samego stanu ?? :/ coś kręcisz ...

no ale zobacz jak to będzie wyglądało z tym pomocniczym canvasem

0

To jest tylko animacja na 2-óch obrazkach. Celem jest uzyskanie efektu jaki jest w jednorekim bandycie czyli 1 obrazek "zjeżdza" w dół a drugi z góry "wjeżdza" na miejsce pierwszego i później 3 obrazek "wjżeżdza" w miejsce 2 idt. Zrobiłem tą animacje ale prostąkąt który ma zakrywać obrazek który "zjeżdza" w dół poza wyznaczony teren przebija i ten obrazek zjeżdzający w dół "miga".

acha wartosci stałych moge zmieniać po dodaniu {$J+}

0

no ja rozumiem co chcesz zrobić i cały czas ci mówię żebyś to rysował najpierw w pamięci a potem na ekranie bo będzie szybciej, łatwiej komputerowi, trochę mu tylko więcej ramu zejdzie i nie będzie ci "przebijać" / skakać / migać.

0

Rozumiem o co ci chodzi. tylko nie wiem jak dodac ten prostokąt w pamięci bo z tego co wiem Canvas rysuje na monitorze?

1 użytkowników online, w tym zalogowanych: 0, gości: 1