Je crois avoir trouvé 3 bugs avec les sprites :
- drawtext sur un sprite ne s'efface pas correctement
- zoomsprite et clipsprite bug
- spriteBlendingMode bug avec directX.
Pour le 3ème :
Sur la 5.11, spriteblenddingmode() fonctionne très bien avec directX, mais sur la 5.20, plus rien ne fonctionne (sur mon ordi en tout cas) : le fait de changer les paramètres ne donnent presque rien comme changement.
Voici le code pour tester :
voici l'image que j'utilise, mais vous pouvez mettre n'importe quel png à la place, ça marche aussi :If InitSprite() = 0 Or InitKeyboard() = 0 Or UsePNGImageDecoder() = 0
End
EndIf
If OpenWindow(0, 0,0,800,600,"Zoomsprite bug",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0,0,800,600)
LoadSprite(0, "loli.png", 32|#PB_Sprite_AlphaBlending )
CopySprite(0,2,32|#PB_Sprite_AlphaBlending)
CreateSprite(1,150,64,32|#PB_Sprite_AlphaBlending )
w = SpriteWidth(0)
h = SpriteHeight(0)
Repeat
event = WindowEvent()
ClearScreen(RGB(120,120,120))
If x <1000
x+1
Else
x = 0
EndIf
; BUG N°1 avec le zoom sprite et clipsrite
ClipSprite(2, 0, 0, x, x/8)
ZoomSprite(2, w+2, h+2)
SpriteBlendingMode(0,0)
DisplayTransparentSprite(2, 150, 100)
; BUG N°2 : le spriteblendingmode ne fonctionne pas en directX
SpriteBlendingMode(b1,b2)
DisplayTransparentSprite(0, 50, 100)
; BUG N°3 : avec le drawtext
If StartDrawing(SpriteOutput(1))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,150,64,RGBA(0,0,0,0))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawText(0,0,"Blendmode : " + Str(b1)+"/"+Str(b2)) ;<-------- ici le 2ème chiffre n'est pas effacé en totalité
DrawText(0,20,"Blendmode : " + Str(b1)+"/"+Str(b2) +" ");<-- ici le 2ème chiffre est totalement effacé
DrawText(0,40,"")
StopDrawing()
EndIf
SpriteBlendingMode(5,6)
DisplayTransparentSprite(1, 0, 0)
FlipBuffers()
If ExamineKeyboard()
If KeyboardReleased(#PB_Key_Up)
If b1 < 10
b1 + 1
Else
b1 =0
EndIf
EndIf
If KeyboardReleased(#PB_Key_Down)
If b2 < 10
b2 + 1
Else
b2 =0
EndIf
EndIf
EndIf
Until event = #PB_Event_CloseWindow ;KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 800*600 - 32 bit screen !", 0)
EndIf
