Seite 1 von 1

StartDrawing(SpriteOutput()) -> Sprite draufmalen

Verfasst: 15.07.2010 23:16
von Delle
Hallo,

ich will auf ein Hintergrund-Sprite schon alles fertig zeichnen lassen, damit nicht immer alles on-the-fly generiert werden muss und nur noch diese eine Sprite angezeigt wird.

Code: Alles auswählen

CreateSprite(#Sprite_Hintergrund,1024,768)
StartDrawing(SpriteOutput(#Sprite_Hintergrund))

Line, Plot, ...

; DisplayTransparentSprite(#Sprite_Irgendwas,300,30)

StopDrawing()
Funktioniert soweit super, nur das DisplayTransparentSprite() natürlich nicht.

Wie krieg ich also das transparente Sprite auch nicht mit auf #Sprite_Hintergrund?

Danke,
Delle

Re: StartDrawing(SpriteOutput()) -> Sprite draufmalen

Verfasst: 15.07.2010 23:35
von STARGÅTE
Wenn du DX7 verwendest, kannst du im anschluss der Drawingsachen (nach StopDrawing) dafür UseBuffer nutzen:

Code: Alles auswählen

CreateSprite(#Sprite_Hintergrund,1024,768)
UseBuffer(#Sprite_Hintergrund)
 DisplayTransparentSprite(#Sprite_Irgendwas,300,30)
UseBuffer(#PB_Default)
Ansonsten, müsstest du es mit einem Image machen, welches du mit DrawAlphaImage() drauf legst ...

Re: StartDrawing(SpriteOutput()) -> Sprite draufmalen

Verfasst: 15.07.2010 23:55
von Delle
Also ich glaub ich verwende DX9, Dein Beispiel ist bei mir auch ohne Funktion :(

Das "Sprite" hab ich nun als Image geladen und normal mit DrawImage plaziert - wird allerdings auch nicht angezeigt:

Code: Alles auswählen

CreateSprite(#Sprite_Hintergrund,1024,320)
StartDrawing(SpriteOutput(#Sprite_Hintergrund))

; Plot, Line, ...

DrawImage(#Image_Irgendwas, 10, 10)

StopDrawing()

Re: StartDrawing(SpriteOutput()) -> Sprite draufmalen

Verfasst: 16.07.2010 00:03
von STARGÅTE
DrawImage verlangt die ImageID nicht ImageNummer :wink:

Code: Alles auswählen

DrawImage(ImageID(#Image_Irgendwas), 10, 10)
Damit das Bild aber transparent ist, solltest du ein 32Bit-Image nutzen mit Alphachannel und dann:
DrawAlphaImage