![]() |
Merkwürdiger Darstellungs Fehler bei gif Animation
Ich hab mal wieder ein 'Problemschen' :mrgreen:
Ich habe aus SPass mal versucht eine Figur auf einem Hintergrund laufen zu lassen, und das so: Hintergrund ist TImage (normale JPG) Die Figur ist wenn sie steht BMP Sobald sie läuft, wird eine Gif-Animation abgespielt die dann verschoben wird (die Beine bewegen sich in dieser Ani.) Allerdings zieht diese Gif-Ani die Kontur des Umfeldes mit sich die das Standbild hatte, das sieht dann so aus: ![]() ich hoffe mein Problem ist verständlich :angel2: Help me pls :stupid: |
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
Du musst beim Gif-Erstellen darauf achten, dass du das Antialias aus schaltest...
die Kante entsteht durch Pixel, die zwar sehr weiß, aber eben nicht rein-weiß (FFFFFF) sind - ich vermute jetzt mal, dass du weiß wegkeyst über Alpha-Farbe oder? Hoffe geholfen zu haben... |
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
Zitat:
|
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
echt irre der weiße Rand war auch bei mir das erste was ich gesehen habe... :wall:
jetzt aber zu seinem Prob... es sieht so aus als würde er einen teil des ganzen Bildes bewegen und nicht nur das Gif-image.. ein wenig Source-Code könnte die lösungs-findung vereinfachen.... Oh man immer wenn ich online bin sind die herrschaften off :kotz: |
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
hi ihr beiden ich hoffe der source bringt uns weiter, hab ein wenig auskommentiert
Delphi-Quellcode:
procedure TForm1.backgroundClick(Sender: TObject);
begin // x = Mauspos. x := ScreenToClient( Mouse.CursorPos ).X -75; // hier wird überprüft in welche Richtung er laufen muss, (dementsprechend 2 animationen) if x < mainman.left then begin mainman.Picture.LoadFromFile('pics/jaru4.gif'); end; if x > mainman.left then begin mainman.Picture.LoadFromFile('pics/jaru2.gif'); end; timer1.Enabled := true ; timer1.Interval := 1; end; procedure TForm1.Timer1Timer(Sender: TObject); begin // Das Laufen if x < mainman.left then begin mainman.Left := mainman.Left - 5 ; end; if x > mainman.left then begin mainman.Left:= mainman.Left + 5; end; |
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
hmmm... du hast also zwei bilder übereinander und bewegst
nur das aufliegende... der code sieht ok aus, ich würde nur die if abfragen in ein case of umbauen... aber der Bug wird dadurch nicht verschwinden.. eigenartig... :coder2: |
Re: Merkwürdiger Darstellungs Fehler bei gif Animation
Hi, ich geb dir mal ein paar Tipps:
1. Setze das Timer-Intervall nicht unter 50, was defacto ungefähr das kleinste Intervall darstellt. Alles andere gibt nur Probleme, weil es z.B. auf unterschiedlichen Rechnern nicht gleichschnell läuft. 2. Bessere Code-Einrückung 3. Benutze keine TImages für Spiele... ich weiß, die meisten (ich auch) fangen damit an, aber das bringt einen ziemlich shcnell an die Grenzen, und zwar wegen folgendem: Instabilität (wie der Bug bei dir), langsamkeit, Flimmern bei Bewegungen und am wichtigsten: Die ganzen Images sind einfach schlecht zu verwalten. Wenn du jedes einzelne Objekt im Spiel mit einem Image darstellen willst, wirst du niemals fertig, weil du jedes mal den gesamten Code anpassen musst. Alternativen: 1. Zeichne alles selber mit TCanvas und TBitmap, und benutze ein ![]() 2. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz