
le pb dans mon truc c'est comment faire un truc du genre
"if couleur est de tendance violet" je suis sur qu'il y a une solution qui eviterait ce if avec plein de Or. Si quelqu'un a une idée ... qu'il n'hesite pas !
Mais en attendant voilà le code
A savoir : Soit un sprite 0 qui est le fond et le sprite 600 un sprite temporaire.
No: numero du sprite
X: coordonée X
Y: Coordonée Y
Bon le code est brut il peu surment être optimisé
Code : Tout sélectionner
Procedure Special(No.l,X,Y)
z=CopySprite(No,600,0)
For v = 0 To SpriteHeight(600)-1
For u = 0 To (SpriteWidth(600) - 1 )
StartDrawing(SpriteOutput(0))
Coul1 = Point(u+X, v+Y)
StopDrawing()
StartDrawing(SpriteOutput(600))
Coul2 = Point(u, v)
r1=Red(Coul1):v1=Green(Coul1):b1=Blue(Coul1)
r2=Red(Coul2):v2=Green(Coul2):b2=Blue(Coul2)
If r2=255 And v2=0 And b2=255 ; si couleur transparente
r3=r2:v3=v2:b3=b2
ElseIf Coul2=RGB(255,255,255) Or Coul2=RGB(255,239,255) Or Coul2=RGB(255,222,247) Or Coul2=RGB(255,206,247) Or Coul2=RGB(255,189,239) Or Coul2=RGB(255,173,239) Or Coul2=RGB(255,156,231) Or Coul2=RGB(255,140,231) Or Coul2=RGB(255,123,222) Or Coul2=RGB(255,107,222) Or Coul2=RGB(255,90,214) Or Coul2=RGB(255,74,214) Or Coul2=RGB(255,57,206) Or Coul2=RGB(255,41,206) Or Coul2=RGB(255,24,198) Or Coul2=RGB(255,8,198) Or Coul2=RGB(198,0,148) Or Coul2=RGB(181,0,132) Or Coul2=RGB(214,0,156) Or Coul2=RGB(165,0,123) Or Coul2=RGB(148,0,107) Or Coul2=RGB(115,0,82) Or Coul2=RGB(99,0,74) Or Coul2=RGB(82,0,57) Or Coul2=RGB(49,0,33) Or Coul2=RGB(66,0,49) ; bon là faut simplifier en gros dégradé de couleur violet
fondu=Int((r2+v2+b2)/3)
fondu=255-fondu-50
If fondu<0:fondu=0:EndIf
r3=Int((r1-fondu))
v3=Int((v1-fondu))
b3=Int((b1-fondu))
Else
r3=r2:v3=v2:b3=b2
EndIf
Plot(u,v,RGB(r3,v3,b3))
StopDrawing()
Next
Next
DisplaySprite(600,X,Y)
EndProcedure