Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   [Andorra] TBackgroundSprite (https://www.delphipraxis.net/115583-%5Bandorra%5D-tbackgroundsprite.html)

mimi 14. Jun 2008 13:08


[Andorra] TBackgroundSprite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich möchte gerne die Klasse TBackgroundSprite nutzen für einen Hintergrund.
ich habe das so verstehen das ich eigentlich nur folgendes machen muss:
Delphi-Quellcode:
  with TBackgroundSprite.Create(AdSpriteEngine) do begin
    Image:=AdImageList.Find('BG');
    z:=-1;
    Depth:=10;
  end;
und beim zeichnen:
Delphi-Quellcode:
  if AdDraw.CanDraw then begin
    AdDraw.BeginScene;
    AdDraw.ClearSurface(clWhite);

    AdSpriteEngine.Draw;
    AdDraw.EndScene;
    AdDraw.Flip;
  end;
Allerdings bin ich mit den Ergebnis nicht zufrieden. Schaut euch doch mal bitte den Anhang an.
Was meint ihr ? Muss ich eine eigene Procedure schreiben ?
(Währe auch kein Problem), aber bevor ich den Aufwand betreibe wollte ich doch mal nach fragen ob es nicht einfacher geht.
ich möchte einfach nur das die angeben Grafik(96*96) auf dem ganzen Bildschirm gekachelt da gestellt wird.
Mehr möchte ich nicht. Ohne abstandt und soweiter.

inherited 14. Jun 2008 13:10

Re: [Andorra] TBackgroundSprite
 
Kannst du auch die Originalgrafik anhängen, damit wir wissen wie es eigentlich aussehen sollte?

igel457 14. Jun 2008 13:12

Re: [Andorra] TBackgroundSprite
 
Beim Backgroundsprite muss die Texturgröße Power of two sein (2^n) - sprich nur größen wie 32x32, 64x64, 128x128, 256x256 etc. sind zulässig.

mimi 14. Jun 2008 13:19

Re: [Andorra] TBackgroundSprite
 
Liste der Anhänge anzeigen (Anzahl: 1)
und 96 X 96 ist das nicht ?
das währe eine Möglichkeit. Die Grafik stammt von DrawBall.

Neutral General 14. Jun 2008 13:21

Re: [Andorra] TBackgroundSprite
 
Zitat:

Zitat von mimi
und 96 X 96 ist das nicht ?

2^6 = 64
2^7 = 128

:arrow: 96x96 ist das nicht ;)

mimi 14. Jun 2008 15:08

Re: [Andorra] TBackgroundSprite
 
Na dann muss ich wohl was selbst machen. Naja was sollst. Fragen schadet ja nicht... :-D
ich habe das jetzt so gelöst:
Delphi-Quellcode:
procedure TPlutoDrawBall.Draw;
var
  adRect:TAdRect;
  x,y:Integer;
begin
  if AdDraw.CanDraw then begin
    AdDraw.BeginScene;
    AdDraw.ClearSurface(clWhite);
    for y:=0 to MapW do begin
      for x:=0 to MapH do begin
         AdImageList.Find('BG').Draw(AdDraw,x * mapS, y * mapS,0);
      end;
    end;

    AdSpriteEngine.Draw;
    AdDraw.EndScene;
    AdDraw.Flip;
  end;
end; // TPlutoDrawBall.Draw
und das ist so wie ich es haben wollte.

igel457 14. Jun 2008 15:14

Re: [Andorra] TBackgroundSprite
 
Das ist natürlich die entsprechende Lösung.
TBackgroundSprite benötigt eine 2^n Textur, da ich dann das gesamte Hintergrundbild über einen einzigen Befehl zeichnen kann, was einiges schneller ist.

mimi 14. Jun 2008 15:19

Re: [Andorra] TBackgroundSprite
 
Also könnte ich auch einfach nur die Größe der Grafik Anpassen und würde dann zum gleichen Ergebnis kommen ?

igel457 14. Jun 2008 15:25

Re: [Andorra] TBackgroundSprite
 
Ja.


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