Code: Alles auswählen
; =======================================
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
; =======================================
Procedure UseBuffer(Sprite.l)
Shared UsedSprite.l
If Sprite = #PB_Default And IsSprite(UsedSprite)
GrabSprite(UsedSprite, 0, 0, SpriteWidth(UsedSprite), SpriteHeight(UsedSprite))
UsedSprite = #PB_Default
ElseIf IsSprite(Sprite)
DisplaySprite(Sprite, 0, 0)
UsedSprite = Sprite
EndIf
EndProcedure
; =======================================
CompilerEndIf
; =======================================
#Sprite1 = 1
#Sprite2 = 2
InitSprite()
OpenWindow(0, 100, 100, 512, 512, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 512, 512, 0, 0, 0)
TransparentSpriteColor(#PB_Default, $FF00FF)
CreateSprite(#Sprite1, 240, 240)
LoadSprite(#Sprite2, #PB_Compiler_Home + "examples/sources/Data/Geebee2.bmp")
UseBuffer(#Sprite1)
ClearScreen($FF0000)
DisplayTransparentSprite(#Sprite2, 10, 10)
DisplayTransparentSprite(#Sprite2, 100, 10)
DisplayTransparentSprite(#Sprite2, 10, 100)
DisplayTransparentSprite(#Sprite2, 100, 100)
UseBuffer(#PB_Default) ; nun unbedingt erforderlich, um die Änderungen zu übernehmen!
Repeat
ClearScreen($0000FF)
DisplaySprite(#Sprite1, WindowMouseX(0), WindowMouseY(0))
FlipBuffers()
Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Code: Alles auswählen
Repeat
UseBuffer(#Sprite1)
...
UseBuffer(#PB_Default) ; nun unbedingt erforderlich, um die Änderungen zu übernehmen!
UseBuffer(#Sprite2)
...
UseBuffer(#PB_Default) ; nun unbedingt erforderlich, um die Änderungen zu übernehmen!
ClearScreen()
...
FlipBuffers()
Until WaitWindowEvent(10) = #PB_Event_CloseWindow