Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Merkwürdiger Darstellungs Fehler bei gif Animation (https://www.delphipraxis.net/119728-merkwuerdiger-darstellungs-fehler-bei-gif-animation.html)

buster55 30. Aug 2008 18:01


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:
http://img377.imageshack.us/img377/5287/buggf0.png


ich hoffe mein Problem ist verständlich :angel2:

Help me pls :stupid:

Bastler 30. Aug 2008 20:28

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...

Namenloser 30. Aug 2008 21:26

Re: Merkwürdiger Darstellungs Fehler bei gif Animation
 
Zitat:

Zitat von Bastler
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...

Ist ja lustig. Daran sieht man, was man vom programmieren für eine merkwürdige Denk/Sichtweise bekommt. Der weiße Rand ist mir nämlich auch als erstes aufgefallen - Aber das ist glaube ich gar nicht sein Problem. Guck dir das zweite Bild nochmal genauer an :mrgreen:

Sidewinder 30. Aug 2008 22:34

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:

buster55 31. Aug 2008 07:12

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;

Sidewinder 31. Aug 2008 11:47

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:

Namenloser 31. Aug 2008 13:47

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 Hier im Forum suchenOffscreenbitmap um das Flimmern zu verhindern. das ganze ist recht einfach, in der Geschwindigkeit nicht ganz vorne, aber für deine Zwecke wohl ausreichend.

2. Hier im Forum suchenAndorra2D oder eine vergleichbare 2d-Engine: Hier kannst du wie professionelle Spiele die Hardwarebeschleunigung der Grafikkarte benutzen, was optisch und in der Geschwindigkeit Vorteile bringt - Ist allerdings IMO etwas schwieriger zu Handhaben als TCanvas und TBitmap. Dafür hast du hier auch schon einige Tools dabei, um Animationen einzubinden etc...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz