SpriteBlendingMode()
Syntaxe
SpriteBlendingMode(ModeSource, ModeDestination)Description
Change la façon dont les couleurs des sprites sont mélangées avec le fond lors de l'utilisation de DisplayTransparentSprite().
Arguments
ModeSource, ModeDestination Les modes source et destination peuvent prendre une valeur quelconque parmi les valeurs suivantes: #PB_Sprite_BlendZero #PB_Sprite_BlendOne #PB_Sprite_BlendSourceColor #PB_Sprite_BlendInvertSourceColor #PB_Sprite_BlendDestinationColor #PB_Sprite_BlendInvertDestinationColor #PB_Sprite_BlendSourceAlpha #PB_Sprite_BlendInvertSourceAlpha #PB_Sprite_BlendDestinationAlpha #PB_Sprite_BlendInvertDestinationAlphaLes valeurs par défaut sont SpriteBlendingMode(#PB_Sprite_BlendSourceAlpha, #PB_Sprite_BlendInvertSourceAlpha).
Valeur de retour
Aucune.
Exemple
;Structure contenant le nom et le mode de transparence Structure ModeTransparence Nom$ Numero.l EndStructure ;Liste qui contient tous les "ModeSource" 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 ;Liste qui contient tous les "ModeDestination" NewList ModeDestination.ModeTransparence() CopyList(ModeSource(), ModeDestination()) ;Initialisation des sprites et du clavier InitSprite() InitKeyboard() ;Création de l'image de fond qui permettra de voir la transparence des sprites CreateImage(1,800,600,32) StartDrawing(ImageOutput(1)) Box(0,0,800,600,RGBA(255,255,255,255)) For i=1 To 1000 Ellipse(Random(800,1), Random(600,1), Random(8,1), Random(8,1) , RGB(Random(255),Random(255),Random(255))) Next i StopDrawing() ;Ouverture d'un écran OpenScreen(800,600,32,"Sprite") ;Sprite Cible. CreateSprite(0,100,100,#PB_Sprite_AlphaBlending) StartDrawing(SpriteOutput(0)) 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() ;Pour toutes les combinaisons entre le ModeSource et le ModeDestination ForEach ModeSource() ForEach ModeDestination() ;Le programme se termine si on appuie longtemps sur la touche Echap (ESC) ExamineKeyboard() If KeyboardPushed(#PB_Key_Escape) End EndIf ;Affichage du fond et de quelques informations StartDrawing(ScreenOutput()) DrawImage(ImageID(1),1,1) DrawText(0, 0, "Appuyer 5 secondes sur Echap pour quitter") DrawText(50, 100, ModeSource()\Nom$+" / "+ModeDestination()\Nom$, RGB(255,255,255), RGB(255,0,0)) DrawText(50, 270, "Couleur transparente = Noire", RGB(255,255,0)) DrawText(50, 470, "Couleur transparente = Rouge", RGB(255,255,0)) StopDrawing() ;TRANSPARENCE du sprite : Couleur noire par défaut SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplaySprite(0, 50, 160) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) TransparentSpriteColor(0, RGBA(0,0,0,128)) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 200, 160,180) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 350, 160,128,RGBA(255,0,0,180)) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 500, 160,0,RGBA(255,0,0,180)) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 500, 160,255,RGBA(255,0,0,180)) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplaySprite(0, 50, 360) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) ;TRANSPARENCE du sprite : Couleur rouge TransparentSpriteColor(0, RGBA(255,0,0,180)) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 200, 360,180) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 350, 360,180) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 500, 360,0) SpriteBlendingMode(ModeSource()\Numero, ModeDestination()\Numero) DisplayTransparentSprite(0, 500, 360,255) ;Affichage à l'écran FlipBuffers() ;Effacer le buffer ClearScreen(RGBA(255,255,255,255)) ;Attendre 3 secondes Delay(3000) Next Next
OS Supportés
Tous