![]() |
[Andorra 2D] AdSpriteEngine zeichnet nicht
Hi,
ich habe ein Problem mit der TSpriteEngine: - Ich lade ein Bild in eine ImageList
Delphi-Quellcode:
- dann möchte ich ein Sprite erstellen. Und zwar mit diesem Bild:
AdImageList := TAdImageList.Create(AdDraw);
with AdImageList.Add('Tux') do begin Texture.LoadFromFile('C:\...\...bmp'); //natürlich steht hier sonst der richtige Pfad end; AdImageList.Restore;
Delphi-Quellcode:
- jetzt muss man doch eigentlich nur noch zeichnen lassen und das Sprite müsste erscheinen, oder doch nicht
with TTux.Create(AdSpriteEngine) do //AdSpriteEngine wurde schon erstellt
begin Image := AdImageList.Find('Tux'); Setposition; //Positionen werden festgelegt end;
Delphi-Quellcode:
Also ich habe herausgefunden, dass das Bild in die ImageList geladen wird, allerdings wird kein Sprite erstellt. Obwohl der Code durchlaufen wird (glaube ich jedenfalls).... AdDraw.BeginScene; AdSpriteEngine.Move(AdPerformanceCounter.TimeGap/1000); AdSpriteEngine.Draw; AdDraw.EndScene; ... AdDraw.Flip Also ich sehe da eigentlich keinen Fehler, ich hoffe ihr könnt mir helfen. mfg Looper |
Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
Du musst
Delphi-Quellcode:
schreiben, da sonst versucht wird, das Bild aus dem internen Andorra Grafikformat zu laden.
Texture.LoadGraphicFromFile('bla.bmp');
|
Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
okay, aber leider geht das immer noch nicht :( .
Ich drücke auf einen Button -> ein Sprite soll erstellt werden -> dann natürlich angezeigt Ich denke mal, dass der Fehler in der AdSpriteEngine auftritt. Also das Sprite erstelle ich hiermit:
Delphi-Quellcode:
aber nicht wie sonst am Anfang, sondern zur Laufzeit (nämlich wenn auf einen Button gedrückt wurde).with TTux.Create(AdSpriteEngine) do begin Image := AdImageList.Find('Tux'); Setposition; end; Also ich bin 100%ig der Überzeugung, dass der Fehler hier auftritt, da danach doch sonst auch der Rückgabewert der Funktion
Delphi-Quellcode:
>0 sein müsste, oder?
AdSpriteEngine.Items.Count
Doch dies ist nicht der Fall (=0). TTux habe ich wiefolgt deklariert:
Delphi-Quellcode:
Aber auch da erkenne ich keinen Fehler.
TTux = class(TImageSprite)
protected procedure DoMove(TimeGap:double);override; public constructor Create(AParent:TSprite);override; procedure SetPosition; end; Hoffe doch sehr auf weiter Hilfe, mfg Looper |
Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
Hallo,
was genau machst du im Constructor von TTux? Rufst du dort brav inherited auf? Ansonsten kann ich mir nicht vorstellen, dass AdSpriteEngine.Count weiterhin null bleibt. Im Notfall kannst du mir dein Projekt (oder (fast noch besser) ein kleines Testprojekt) schicken und ich schaue ob ich einen Fehler finden kann. |
Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
Oh Gott :wall: Viele Dank.
Ich hatte geschrieben
Delphi-Quellcode:
Und da guck ich dank deines Hinweises nochmnal genau hin und sehe...
constructor TTux.Create(AParent : TSprite);
begin inherited X := 200; Y := 200; end; das Semikolom^^ So klappt jetzt auch perfekt. Dankeschön! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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 by Thomas Breitkreuz