Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2D] AdSpriteEngine zeichnet nicht (https://www.delphipraxis.net/109893-%5Bandorra-2d%5D-adspriteengine-zeichnet-nicht.html)

Looper 9. Mär 2008 19:33


[Andorra 2D] AdSpriteEngine zeichnet nicht
 
Hi,

ich habe ein Problem mit der TSpriteEngine:
- Ich lade ein Bild in eine ImageList
Delphi-Quellcode:
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;
- dann möchte ich ein Sprite erstellen. Und zwar mit diesem Bild:
Delphi-Quellcode:
with TTux.Create(AdSpriteEngine) do //AdSpriteEngine wurde schon erstellt
  begin
    Image := AdImageList.Find('Tux');
    Setposition; //Positionen werden festgelegt
  end;
- jetzt muss man doch eigentlich nur noch zeichnen lassen und das Sprite müsste erscheinen, oder doch nicht
Delphi-Quellcode:
   
...
AdDraw.BeginScene;
  AdSpriteEngine.Move(AdPerformanceCounter.TimeGap/1000);
  AdSpriteEngine.Draw;
AdDraw.EndScene;
...
AdDraw.Flip
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).

Also ich sehe da eigentlich keinen Fehler, ich hoffe ihr könnt mir helfen.

mfg Looper

igel457 9. Mär 2008 19:36

Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
 
Du musst
Delphi-Quellcode:
Texture.LoadGraphicFromFile('bla.bmp');
schreiben, da sonst versucht wird, das Bild aus dem internen Andorra Grafikformat zu laden.

Looper 9. Mär 2008 19:46

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:
 
with TTux.Create(AdSpriteEngine) do
begin
  Image := AdImageList.Find('Tux');
  Setposition;
end;
aber nicht wie sonst am Anfang, sondern zur Laufzeit (nämlich wenn auf einen Button gedrückt wurde).

Also ich bin 100%ig der Überzeugung, dass der Fehler hier auftritt, da danach doch sonst auch der Rückgabewert der Funktion
Delphi-Quellcode:
AdSpriteEngine.Items.Count
>0 sein müsste, oder?

Doch dies ist nicht der Fall (=0).

TTux habe ich wiefolgt deklariert:
Delphi-Quellcode:
  TTux = class(TImageSprite)
  protected
    procedure DoMove(TimeGap:double);override;
  public
    constructor Create(AParent:TSprite);override;
    procedure SetPosition;
  end;
Aber auch da erkenne ich keinen Fehler.

Hoffe doch sehr auf weiter Hilfe, mfg Looper

igel457 11. Mär 2008 18:01

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.

Looper 11. Mär 2008 19:34

Re: [Andorra 2D] AdSpriteEngine zeichnet nicht
 
Oh Gott :wall: Viele Dank.
Ich hatte geschrieben
Delphi-Quellcode:
constructor TTux.Create(AParent : TSprite);
begin
  inherited
  X := 200;
  Y := 200;
end;
Und da guck ich dank deines Hinweises nochmnal genau hin und sehe...
das Semikolom^^

So klappt jetzt auch perfekt.
Dankeschön!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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