Une idée ?
Code : Tout sélectionner
Structure ModeTransparence
Nom$
Numero.l
EndStructure
NewList ModeSource.ModeTransparence()
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendZero"
ModeSource()\Numero =#PB_Sprite_BlendZero
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendOne"
ModeSource()\Numero =#PB_Sprite_BlendOne
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendSourceColor"
ModeSource()\Numero =#PB_Sprite_BlendSourceColor
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendInvertSourceColor"
ModeSource()\Numero =#PB_Sprite_BlendInvertSourceColor
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendDestinationColor"
ModeSource()\Numero =#PB_Sprite_BlendDestinationColor
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendInvertDestinationColor"
ModeSource()\Numero =#PB_Sprite_BlendInvertDestinationColor
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendSourceAlpha"
ModeSource()\Numero =#PB_Sprite_BlendSourceAlpha
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendInvertSourceAlpha"
ModeSource()\Numero =#PB_Sprite_BlendInvertSourceAlpha
AddElement(ModeSource())
ModeSource()\Nom$ = "#PB_Sprite_BlendDestinationAlpha"
ModeSource()\Numero =#PB_Sprite_BlendDestinationAlpha
AddElement(ModeSource())
ModeSource()\Nom$ = "PB_Sprite_BlendInvertDestinationAlpha"
ModeSource()\Numero =#PB_Sprite_BlendInvertDestinationAlpha
NewList ModeDestination.ModeTransparence()
CopyList(ModeSource(), ModeDestination())
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"Sprite")
;Sprite Cible 32-bits car l'écran est 32-bits.
CreateSprite(0,100,100,#PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(0))
;DrawingMode(#PB_2DDrawing_AlphaBlend)
;DrawingMode(#PB_2DDrawing_AllChannels)
Circle(50,50,49,RGBA(255,255,0,255))
Circle(50,50,40,RGBA(0,255,0,128))
Circle(50,50,30,RGBA(0,255,255,128))
Circle(50,50,20,RGBA(0,0,255,128))
Circle(50,50,10,RGBA(255,0,0,64))
StopDrawing()
ForEach ModeSource()
ForEach ModeDestination()
; ok$=ModeSource()\Nom$+"/"+ModeDestination()\Nom$
; Debug ok$
ClearScreen(RGBA(255,255,255,255))
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
StartDrawing(ScreenOutput())
DrawText(0, 0, "Appuyer LONGTEMPS sur Echap pour quitter")
DrawText(100, 100, ModeSource()\Nom$+" / "+ModeDestination()\Nom$)
StopDrawing()
;TRANSPARENCE
SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
TransparentSpriteColor(0, RGBA(0,0,0,128))
DisplaySprite(0, 50, 160)
DisplayTransparentSprite(0, 200, 160,128)
DisplayTransparentSprite(0, 350, 160,128,RGBA(255,0,0,128))
DisplayTransparentSprite(0, 500, 160,0,RGBA(255,0,0,128))
DisplayTransparentSprite(0, 500, 160,255,RGBA(255,0,0,128))
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
TransparentSpriteColor(0, RGBA(255,0,0,128))
DisplaySprite(0, 50, 360)
DisplayTransparentSprite(0, 200, 360,128)
DisplayTransparentSprite(0, 350, 360,128)
DisplayTransparentSprite(0, 500, 360,0)
DisplayTransparentSprite(0, 500, 360,255)
FlipBuffers()
ClearScreen(RGBA(255,255,255,255))
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
Delay(3000)
;FlipBuffers()
;ClearScreen(RGBA(255,255,255,255))
;FlipBuffers()
;SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero)
Next
Next