Bon, outre le RGB qui se comporte comme un RGBA, si on le vire et qu'on fait simplement "color.l=i+u", quand un jeu est lancé, j'obtient du noir :
Code : Tout sélectionner
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; BUG GRAPHIQUE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
InitSprite()
InitKeyboard()
InitMouse()
#dw=1024
#dh=768
#dc=32
If OpenScreen(#dw,#dh,#dc,"Another Earth")=0
MessageRequester("Erreur", "Screen Open ("+Str(#dw)+","+Str(#dh)+",32) : impossible à ouvrir", 0) : End
EndIf
LoadFont(1, "Arial", 12)
StartDrawing(ScreenOutput())
Box(0,0,#dw/2,#dh,RGB(0,255,0))
Box(#dw/2,0,#dw/2,#dh,RGB(255,0,0))
Box(4,4,#dw/2-8,#dh-8,0)
Box(#dw/2+4,4,#dw/2-8,#dh-8,0)
DrawingMode(#PB_2DDrawing_Default)
DrawingFont(FontID(1))
DrawText(#dw/2+30,#dh-30,"WAIT...", RGB(255,255,255))
StopDrawing()
GrabSprite(0,0,0,#dw,#dh)
FlipBuffers()
DisplaySprite(0,0,0)
Dim p(#dw/2,#dh)
StartDrawing(ScreenOutput())
For u=4 To #dh-5
For i=4 To #dw/2-5
color.l=i+u
Plot(i,u,color)
p(i,u)=color
Next
If u%8=0
StopDrawing()
GrabSprite(0,0,0,#dw,#dh)
FlipBuffers()
DisplaySprite(0,0,0)
StartDrawing(ScreenOutput())
EndIf
Next
StopDrawing()
percent=0
max=0
StartDrawing(ScreenOutput())
For u=4 To #dh-5
For i=4 To #dw/2-5
color=Point(i,u)
Plot(i+#dw/2,u,color)
max+1
If color<>p(i,u)
;Plot(i+#dw/2,u,RGB(255,255,255))
percent+1
EndIf
Next
If u%8=0
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
StopDrawing()
GrabSprite(0,0,0,#dw,#dh)
FlipBuffers()
DisplaySprite(0,0,0)
StartDrawing(ScreenOutput())
EndIf
Next
StopDrawing()
LoadFont(1, "Arial", 9)
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Default)
DrawingFont(FontID(1))
;descrip$=" Si vous avez la meme chose dans le cadre vert et dans le cadre rouge, vous n'avez pas le bug graphique du ''Point(x,y)'' "
;DrawText(#dw/2-TextWidth(descrip$)/2,#dh-60,descrip$, RGB(255,255,255))
f.f=(percent*100)/max
If f=0
descrip$=" Aucun bug graphique du ''Point(x,y)'' "
Else
descrip$=" Le bug du ''Point(x,y)'' est présent à "+StrF(f.f)+"% "
EndIf
DrawText(#dw/2-TextWidth(descrip$)/2,#dh-36,descrip$, RGB(255,255,255))
StopDrawing()
;;;;;;;;;; si vous voulez sauvegarder votre image...
GrabSprite(0,0,0,#dw,#dh) : SaveSprite(0,"d:/test_gfx.bmp")
;;;;;;;;;;
FlipBuffers()
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
;;;;;;;;;;;;;;;