DisplayTransparentSprite(#Sprite, x, y [, Intensität [, Farbe]])
... Standardmäßig wird die Farbe 0 (schwarz) als transparente Farbe betrachtet (diese Farbe wird nicht angezeigt).
Allerdings hab ich mir heute ein Loch in den Bauch gewundert, warum mein Code nicht funktioniert, und das dann darauf eingrenzen können, daß man Schwarz explizit mit TransparentSpriteColor() als transparent setzen muß.
Ist die Hilfe hier falsch oder veraltet? Hab ich einen Verständnisfehler? Oder sollte das eigentlich anders sein.
Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("Error", "Can't open the sprite system", 0)
End
EndIf
If OpenWindow(0, 0, 0, 420, 420, "Gadget and sprites!", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 10, 10, 400, 400, 0, 0, 0)
CreateSprite(0, 400, 400, #PB_Sprite_AlphaBlending)
CreateSprite(1, 350, 20, #PB_Sprite_AlphaBlending)
If StartDrawing(SpriteOutput(0))
Box(0, 0, 400, 400, RGB(0, 0, 0))
For k.l = 0 To 400 Step 5
LineXY(0, 0, 400, k, Random($FFFFFF))
LineXY(0, 0, k, 400, Random($FFFFFF))
Next
StopDrawing()
EndIf
If StartDrawing(SpriteOutput(1))
Box(0, 0, 350, 20, RGB(0, 0, 0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10, 2, "ABCDEF ABCDEF ABCDEF ABCDEF ABCDEF", RGB(255, 255, 255))
StopDrawing()
EndIf
; TransparentSpriteColor(1, RGB(0, 0, 0))
DisplayTransparentSprite(0, 0, 0, 255)
For k.l = 0 To 15
DisplayTransparentSprite(1, 25, k * 22 + 10, k * 16)
Next
FlipBuffers()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
EndIf
EndIf