![]() |
Problem mit Spriteanimation unter DelphiX
Hi, hab vorhin (endlich) mal ein Tutorial für DelphiX gefunden. Jetzt häng ich an einem Problem der Spriteanimation... Also erstmal hier der Code
Delphi-Quellcode:
Da ich leider nich weiß, wie ich gute Sprites schnell erstelle (Geht ja sicher anderster, als jedes Bild einzel malen) hab ich jetzt einfach 2 Bilder jeder 32x32px in ein 64x32px gepackt.. Müsste ja normal jetzt zwischen den beiden hinundhewechseln, tut sich aber nix :(
TAnimation = class(TImageSprite);
var Form1: TForm1; Animation: TAnimation; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Animation := TAnimation.Create(DXSpriteEngine1.Engine); with Animation do begin Image := Form1.DXImageList1.Items.Find('Player'); X := 0; Y := 0; Z := 0; Width := Animation.Image.Width; Height := Animation.Image.Height; AnimCount := 4; AnimLooped := True; AnimSpeed := 50/1000; AnimStart := 0; end; end; procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer); begin DXSpriteEngine1.Move(1); DXDraw1.Surface.Fill(0); DXSpriteEngine1.Draw; DXDraw1.Flip; end; end. Kann mir evtl. einer weiterhelfen? Danke schonmal im Vorraus. Mfg Spessi |
Re: Problem mit Spriteanimation unter DelphiX
Du solltest die Methode Move des TImageSprite in deinem TAnimation überschreiben und vielleicht dort die AnimPos einstellen.
Delphi-Quellcode:
So hab' ich das in einigen von meinen Projekten mit DelphiX gemacht.
TAnimation = class(TImageSprite)
public procedure Move(MoveCount:Integer); end; procedure TAnimation.Move(MoveCount:Integer); begin // hier die Funktion für die AnimPos AnimPos:=f(MoveCount); end; Bei der automatischen Animation müsstest du vielleicht irgendwas auf True setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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