Draw3D2-Zeichnungsreihenfolge (zOrder)
Übersicht

![]() |
IguanBetreff: Draw3D2-Zeichnungsreihenfolge (zOrder) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallöchen
Ich hoffe dass diese Frage noch nicht bereits gestellt wurde, im Forum konnte ich jedenfalls nichts finden: Ich habe einen kleinen Tile-Editor gebastelt, welcher verschiedene Bilder (Tile-Palletten mit je 256 Tiles) lädt. Dies mache ich mit Code: [AUSKLAPPEN] Pallette(0) = LoadImage3D(....... Pallette(1) = LoadImage3D(...... etc... Anhand diesen Paletten werden die einzelnen Tiles gegrabbt (Grabimage3d) und in einem Array Code: [AUSKLAPPEN] TileNr = 0 For PalletteNr = 0 To PalletteCount-1 For y = 0 To PalletteTileCountXY-1 For x = 0 To PalletteTileCountXY-1 Tile(TileNr) = GrabImage3D(Pallette(PalletteNr),x*TileSize,y*TileSize,TileSize,TileSize) TileNr = TileNr + 1 Next Next Next gespeichert. Anschliessend lade ich mit LoadImage3D ein Native, welches für das zeichnen eines Menüs verwendet wird (Rechteck welches die Untere Bildschirmhälfte abdeckt, gezeichnet mit Rect3D). Nun möchte ich auf dieses Menü (Rechteck) wiederum Tiles aus den zuvor geladenen Bildern (Palletten) zeichnen, damit der Benutzer auswählen kann, mit welchem Tile er nun weiterzeichnen möchte (Sprite-Auswahl). Leider kriege ich es nicht hin, denn so wie es scheint wird die Z-Order der Sprites dadurch bestimmt, welches Bild man zuerst lädt. Bei gegrabbten Images von einem Quellbild, lässt sich die Zeichnungsreihenfolge frei bestimmen. Bei mehreren Quellbilldern kann man die Zeichnungsreihenfolge nur von Bildern ihrer entsprechenden Quelle frei bestimmen. Hoffentlich versteht ihr was ich meine... ![]() LANGE REDE, KURZE FRAGE: ----------------------------------- Gibt es eine Möglichkeit, dass sich Draw3D2 so verhält wie Blitzbasic2D. Damit meine ich, dass das zuerst gezeichnete, gegrabbte Bild (egal von welchem Quellbild) zu-unterst ist, und alle nachfolgend gezeichneten grabb-Bilder das jeweils letztgezeichnete überdecken. Wie löst ihr das Problem? mfg Iguan |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht nicht, weil jedes geladene Bild ein Surface benutzt und somit als ganzes an die Grafikkarte gesendet wird das es zu zeichnen gilt. Du kannst natürlich deine Paletten auch mehrfach laden und mit entsprechenden ZOrder versehen. Da erfordert jedoch erhöhtes Bearbeitungspotenzial. Oder man bearbeitet die geladenen Bilder gleich so, dass alle Elemente einer Palette bereist eingezeichnet sind, die auch auf einmal eingezeichnet werden müssen. Du lädst dann nur noch ein Bild für deine Paletten. Das ist dann nicht nur einfach in der Handhabung später, sondern erhöht auch die Zeichnegeschwindigkeit, da weniger Surfaces an die Grafikkarte pro Frame gesendet werden.
Übrigens macht GrabAnimImage3D genau das gleiche, was du da mit deiner doppelt verschachtelten Schleife machst. Dieser Befehl ist dem 2D-Befehl sehr angenährt. In deinem Beispiel müssten folgende Werte richtig sein: GrabAnimImage3D(Pallette(PalletteNr),TileSize,TileSize,0,AnzahlFrames,1,1) |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, dann schaue ich, dass ich alle Bilder auf ein *.png kriege. Das mit GrabAnimImage3D hab ich nun umgesetzt und das funktioniert soweit! Vielen Dank! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group