Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [DelphiX] Sprite mit richtiger Textur? (https://www.delphipraxis.net/37265-%5Bdelphix%5D-sprite-mit-richtiger-textur.html)

Elite 3. Jan 2005 15:47


[DelphiX] Sprite mit richtiger Textur?
 
Hallo,
in DelphiX gibt es ja diese netten ImagesSprites, welche ichauch verwende. Man kann ihnen ein BMP aus einer ImageList zuweisen und sie werden von der SpriteEngine immer schön gezeichnet.
Ich verwende allerdings nicht einfach nur Bilder, sondern richtige Texturen(im .bmp-Format) und würde diese auch gern als solche verwenden. Das heißt, ich lege die Größe des Sprites fest (width, height) und das gewählte Bild aus der ImageList wird so oft nebeneinander und untereinander geklatscht wie eben notwendig, um alles auszufüllen.
So etwas habe ich bisher noch nicht erspähen können. Gibt es diese Möglichkeit?

Die Muhkuh 3. Jan 2005 15:57

Re: [DelphiX] Sprite mit richtiger Textur?
 
Hi,

jupp das geht.

Du musst Tile auf true stellen.

Elite 3. Jan 2005 18:50

Re: [DelphiX] Sprite mit richtiger Textur?
 
Wenn ich tile auf true stelle, wird der Sprite um Screen.Width weiter links und rechts nochmals dargestellt. Aber ich möchte ja die Textur so oft wie benötigt auf dem brush abbilden. Was mache ich falsch?

Elite 7. Jan 2005 14:44

Re: [DelphiX] Sprite mit richtiger Textur?
 
Hmm .. 4 Tage vergangen und die DelphiX-Profis sind immer noch nicht aus ihren Löchern gekommen. :cry:
Bitte Jungs, es ist mir nach wie vor wichtig!

*Nach oben schieb*

mimi 9. Jan 2005 17:03

Re: [DelphiX] Sprite mit richtiger Textur?
 
du könntes folgendes versuchen: du erstellst ein TBitMap und stllst du diese Stret... einenschaft auf true und dann kopierst du es in die DXImageList. oder du machst es dir noch einfacher:
es gibt einen befehl unter delphiX der ist bei der ImageList dort dabei:
der heißt irgenwie DrawStr..... und der zeichnet eine Textur auf die größe die du haben möchtes.(habe ich noch nie gemacht, daher weiß ich nicht genaue welche parmenter du brauchst *G*)

Elite 11. Jan 2005 17:18

Re: [DelphiX] Sprite mit richtiger Textur?
 
Vielleicht ist meine Absicht immer noch nicht ganz klar. Deswegen mal folgendes Bild aus meinem Editor, in dem das Texturieren mittlerweise schon prima klappt:
http://de.geocities.com/elitecamper2004/textur.jpg
Wie man sieht, kann der "Brush" beliebig groß gezogen werden und die Textur wird so oft dupliziert und nebeneinander gepackt, wie es nötig ist. Genau diese Funktion vermisse ich in DelphiX. Sieht nun vielleicht jemand ne Möglichkeit?

Elite 13. Jan 2005 17:07

Re: [DelphiX] Sprite mit richtiger Textur?
 
*Nach oben schieb*

Oxmyx 13. Jan 2005 17:15

Re: [DelphiX] Sprite mit richtiger Textur?
 
Wenn du schon ein Raster hast, zeichne die Treppe doch einfach so oft wie nötig übereinander.

Elite 15. Jan 2005 10:38

Re: [DelphiX] Sprite mit richtiger Textur?
 
Naja, ich benutze für das Ganze ja die SpriteEngine, weswegen ich gar keinen direkten Zugriff auf das Zeichnen habe (oder etwa doch) und außerdem kann es ja auch sein, dass ich die Leiter z.B. 1,5 mal oder 4,25 mal übereinander zeichnen muss.
Oder meint ihr ich sollte mir beim Laden des Levels für alle Brushes die Texturen so zurecht schnipseln, dass diese genau passen und sie in die ImageList laden? Nachteil wäre, dass ich dann unglaubliche Mengen an Bitmaps im Speichern habe, wobei diese im Endeffekt immer nur aus wenigen Texturen bestehen.

Die Muhkuh 15. Jan 2005 10:49

Re: [DelphiX] Sprite mit richtiger Textur?
 
Schon mal versucht die Procedure DoDraw zu überschreiben?

Elite 15. Jan 2005 12:15

Re: [DelphiX] Sprite mit richtiger Textur?
 
Ahh, schau her. Das ist ja schon mal sehr nützlich.
Wie bringe ich es jetzt noch fertig, dass die Textur, auch wenn sie z.B. nur 64x128 groß ist, einen 100x100 großen Brush vollständig einkleidet?

Die Muhkuh 15. Jan 2005 12:25

Re: [DelphiX] Sprite mit richtiger Textur?
 
Bei mir tuts das dann, wenn ich Tile auf true stelle.

Elite 15. Jan 2005 19:13

Re: [DelphiX] Sprite mit richtiger Textur?
 
Ok, also da ich mittlerweile seit 2 Wochen an diesem Problem herumfriemele und mir leider jegliche Vorstellung davon fehlt, wieso es bei dir funktioniert, aber offenbar bei mir nicht, bitte ich dich mir mal ein kleines Beispiel-Prog zu zeigen. Ich weiß, normalerweise ist der Fragesteller derjenige, der den Code zeigen sollte, aber ich bezweifle, dass das viel bringen wird. Hier ist trotzdem mal eine der Klassen, bei der das Kacheln funktionieren müsste:
Delphi-Quellcode:
  TBrush = class(TImageSprite)
      constructor CreateIt(AParent: TSprite; x,y: double);
  end;

constructor TBrush.CreateIt(AParent: TSprite; x, y: double);
begin
  inherited create(AParent);
  image := Form1.DXImageList1.Items[3];
  Self.x := x;
  Self.y := Y;
  Width :=Image.Width*2;
  Height :=Image.Height;
  pixelcheck := false;
  tile := true;
end;
Im Konstruktor wird der Sprite also 2 mal so breit gemacht wie das eigentliche Bild. Wieso liegt dann die Textur nicht auch 2 mal nebeneinander? Ich raff es nicht ...

mimi 16. Jan 2005 09:33

Re: [DelphiX] Sprite mit richtiger Textur?
 
versuche mal dort ein z:=-1 einzufügen (dann sollte es klappen).


denn die Sprit engine von delphiX hat eine z eigenschaft und wenn die auf 0(?) steht müsstes du normalerweise nichts sehen können *G*

Elite 16. Jan 2005 09:49

Re: [DelphiX] Sprite mit richtiger Textur?
 
Ich frage mich ehrlich gesagt gerade, was die Position in z-Richtung mit dem Texturieren zu tun haben soll. Es hat btw auch keine Auswirkungen. Selbst wenn ich width doppelt so groß mache wie das zugehörige Image breit ist, wird das Image nur ein mal abgebildet.

Oxmyx 18. Jan 2005 14:16

Re: [DelphiX] Sprite mit richtiger Textur?
 
Ich frage mich, ob du nicht völlig falsch an das Problem herangehst. Wie ich das auf deinem Screenshot sehen kann, versuchst du doch ein Jump&Run-Spiel zu machen. Das hat ein 2D-Raster als Grundformat des Levels. Wieso nimmst du nicht einfach ein 2D-Array, und speicherst darin den Typ jeder Bild-Kachel ab? Beim Rendern zeichnest du dann einfach an die jeweilige Position das richtige Bild. Für eine Leiter brauchst du dann z.B. 3 Bilder: eins, bei dem unten noch Boden zu sehen ist, eins auf dem ein Mittelstück der Leiter zu sehen ist, und eins auf dem die Leiter oben endet. Dann kannst du damit beliebig lange Leitern in deinem Spiel machen. Dann kommt es gar nicht vor, dass du die Leiter 3,25 Mal übereinander abbilden musst, denn du hast ja ein Raster, in das immer nur ein Bild passt.

Elite 18. Jan 2005 14:33

Re: [DelphiX] Sprite mit richtiger Textur?
 
Zitat:

Zitat von Oxmyx
Das hat ein 2D-Raster als Grundformat des Levels. Wieso nimmst du nicht einfach ein 2D-Array, und speicherst darin den Typ jeder Bild-Kachel ab? Beim Rendern zeichnest du dann einfach an die jeweilige Position das richtige Bild.

Ich habe mich mit meinen Grafiker darauf geeinigt, dass wir "handelsübliche" Texturen benutzen. Dazu gehören alle Texturen im Format 64^x * 64^y, nicht weil wir sie aus anderen Spielen kopieren wollen, sondern weil es bereits viele kostenslose Texturen gibt. Demnach wird in einer Maps also nicht der "Typ" einer Kachel gespeichert, sondern die Ausmaße aller Brushes, deren Position und selbstverständlich die Textur selbst, so wie die Map im Editor kreiert wurde. Dadurch hat mein Grafiker absolut freie Hand.
Ich kann im Editor auch nicht die ganze Map als Raster ansehen und sie Kachel für Kachel abfotografieren, weil dann viel mehr Bildmaterial(ca. 768*4000*3 Pixel Bitmaps) in einer Map gespeichert würde als so.
Ich muss also mit einer den Konventionen ensprechenden Textur jeden beliebigen Brush in DelphiX einkleiden können.


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