Une version du premier code avec antialias :
Code : Tout sélectionner
Enumeration Fenetre
#Fenetre
EndEnumeration
Enumeration Gadgets
#Canvas
EndEnumeration
InitSprite() :InitKeyboard() : InitMovie() : InitMouse() : InitSound() : UseJPEGImageDecoder()
Procedure ACircle(x.i, y.i, radius.d, color.i, antilenh.d = 1)
;
Define.l lR, lG, lB
Define.d dNormal, dValue
If radius <= 0
radius = 0.00001
EndIf
If antilenh <= 0
antilenh = 0.00001
EndIf
DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Gradient)
ResetGradientColors()
lR = Red (color)
lG = Green(color)
lB = Blue (color)
dNormal = 1 / radius
dValue = 1.0 - antilenh * dNormal
GradientColor( 0 , RGBA(lR, lG, lB, 255))
GradientColor(dValue, RGBA(lR, lG, lB, 255))
GradientColor( 1 , RGBA(lR, lG, lB, 0 ))
CircularGradient(x, y, radius)
Circle (x, y, radius)
EndProcedure
Procedure Ouvrir_Fenetre_principale()
OpenWindow(#Fenetre, 0, 0, 1100, 950, "Petits chevaux", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(#Canvas, 0, 0, 1100, 950, #PB_Canvas_Border)
;dessin du plateau de jeu
If StartDrawing(CanvasOutput(#Canvas))
Ecart = 80
Rayon = 30
;ligne 1
Couleur = 0
ACircle(70, 70, Rayon, Couleur)
ACircle(70+Ecart, 70, Rayon, Couleur)
Couleur = $FFFF
ACircle(70, 70, Rayon - 4, Couleur)
ACircle(70+Ecart, 70, Rayon - 4, Couleur)
couleur = 0
ACircle(70 + (Ecart * 5), 70, Rayon, couleur)
ACircle(70 + (Ecart * 6), 70, Rayon, couleur)
ACircle(70 + (Ecart * 7), 70, Rayon, couleur)
ACircle(70 + (Ecart * 11), 70, Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70, Rayon, Couleur)
Couleur = $FF00
ACircle(70 + (Ecart * 11), 70, Rayon - 4, Couleur)
ACircle(70 + (Ecart * 12), 70, Rayon - 4, Couleur)
;ligne 2
Couleur = 0
ACircle(70, 70 + Ecart, Rayon, Couleur)
ACircle(70 + Ecart,70 + Ecart, Rayon, Couleur)
Couleur = $FFFF
ACircle(70, 70 + Ecart, Rayon - 4, Couleur)
ACircle(70 + Ecart,70 + Ecart, Rayon - 4, Couleur)
Couleur = 0
ACircle(70 + (Ecart * 5), 70 + Ecart, Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + Ecart, Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + Ecart, Rayon, Couleur)
Couleur = 0
ACircle(70 + (Ecart * 11), 70 + Ecart, Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70 + Ecart, Rayon, Couleur)
Couleur = $FF00
ACircle(70 + (Ecart * 11), 70 + Ecart, Rayon - 4, Couleur)
ACircle(70 + (Ecart * 12), 70 + Ecart, Rayon - 4, Couleur)
;ligne 3
Couleur = 0
ACircle(70 + (Ecart * 5), 70 + (Ecart * 2), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 2), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 2), Rayon, Couleur)
;ligne 4
ACircle(70 + (Ecart * 5), 70 + (Ecart * 3), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 3), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 3), Rayon, Couleur)
;ligne 5
ACircle(70, 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 2), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 3), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 4), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 5), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 4), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 8), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 9), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 10), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 11), 70 + (Ecart * 4), Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 4), Rayon, Couleur)
;ligne 6
ACircle(70, 70 + (Ecart * 5), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 2), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 3), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 4), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 5), 70 + (Ecart * 5), Rayon - 10, Couleur)
;ACircle(70 + (Ecart * 6), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 8), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 9), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 10), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 11), 70 + (Ecart * 5), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 5), Rayon, Couleur)
;ligne 7
ACircle(70, 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 2), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 3), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 4), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 5), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 6), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 8), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 9), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 10), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 11), 70 + (Ecart * 6), Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 6), Rayon, Couleur)
;ligne 8
ACircle(70 + (Ecart * 5), 70 + (Ecart * 7), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 7), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 7), Rayon, Couleur)
;ligne 9
ACircle(70 + (Ecart * 5), 70 + (Ecart * 8), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 8), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 8), Rayon, Couleur)
;ligne 10
Couleur = 0
ACircle(70, 70 + (Ecart * 9), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 9), Rayon, Couleur)
Couleur = $FF0000
ACircle(70, 70 + (Ecart * 9), Rayon - 4, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 9), Rayon - 4, Couleur)
Couleur = 0
ACircle(70 + (Ecart * 5), 70 + (Ecart * 9), Rayon, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 9), Rayon - 10, Couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 9), Rayon, Couleur)
Couleur = 0
ACircle(70 + (Ecart * 11), 70 + (Ecart * 9), Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 9), Rayon, Couleur)
Couleur = $FF
ACircle(70 + (Ecart * 11), 70 + (Ecart * 9), Rayon - 4, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 9), Rayon - 4, Couleur)
;ligne 11
Couleur = 0
ACircle(70, 70 + (Ecart * 10), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 10), Rayon, Couleur)
Couleur = $FF0000
ACircle(70, 70 + (Ecart * 10), Rayon - 4, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 10), Rayon - 4, Couleur)
couleur = 0
ACircle(70 + (Ecart * 5), 70 + (Ecart * 10), Rayon, couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 10), Rayon, couleur)
ACircle(70 + (Ecart * 7), 70 + (Ecart * 10), Rayon, couleur)
Couleur = 0
ACircle(70 + (Ecart * 11), 70 + (Ecart * 10), Rayon, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 10), Rayon, Couleur)
Couleur = $FF
ACircle(70 + (Ecart * 11), 70 + (Ecart * 10), Rayon - 4, Couleur)
ACircle(70 + (Ecart * 12), 70 + (Ecart * 10), Rayon - 4, Couleur)
Couleur = $FF00
ACircle(70 + (Ecart * 6), 70 + Ecart, Rayon - 14, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 2), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 3), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 6), 70 + (Ecart * 4), Rayon - 14, Couleur)
;ligne horizontale
Couleur = $FFFF
;ACircle(70, 70 + (Ecart * 5), Rayon, Couleur)
ACircle(70 + Ecart, 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 2), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 3), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 4), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 5), 70 + (Ecart * 5), Rayon - 14, Couleur)
;ACircle(70 + (Ecart * 6), 70 + (Ecart * 5), Rayon - 10, Couleur)
Couleur = $FF
ACircle(70 + (Ecart * 7), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 8), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 9), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 10), 70 + (Ecart * 5), Rayon - 14, Couleur)
ACircle(70 + (Ecart * 11), 70 + (Ecart * 5), Rayon - 14, Couleur)
;ACircle(70 + (Ecart * 12), 70 + (Ecart * 5), Rayon, Couleur)
Couleur = $FF0000
;ligne 7
ACircle(70 + (Ecart * 6), 70 + (Ecart * 6), Rayon - 14, Couleur)
;ligne 8
ACircle(70 + (Ecart * 6), 70 + (Ecart * 7), Rayon - 14, Couleur)
;ligne 9
ACircle(70 + (Ecart * 6), 70 + (Ecart * 8), Rayon - 14, Couleur)
;ligne 10
ACircle(70 + (Ecart * 6), 70 + (Ecart * 9), Rayon - 14, Couleur)
StopDrawing()
EndIf
EndProcedure
Ouvrir_Fenetre_principale()
;Boucle événementielle
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
End
EndSelect
Delay(1)
Until Event = #PB_Event_CloseWindow