Grille Boutons pour jeux..
Publié : ven. 07/déc./2012 21:31
bonjour
petit essai de panneau boutons pour divers jeux.
Cordialement
[réédit] ajout suppressions multiples
avec
boutons style tee shirt hippie époque woodstock
ps: code mis à jour avec le test mines de graph100
petit essai de panneau boutons pour divers jeux.
Cordialement
[réédit] ajout suppressions multiples

avec

ps: code mis à jour avec le test mines de graph100
Code : Tout sélectionner
UsePNGImageDecoder():UseJPEGImageDecoder()
If LoadImage(6, "c:\purebasic\Examples\3D\Data\Textures\MRAMOR6X6.jpg")
ResizeImage(6,25,25) : Else : CreateImage(6,25,25,32) : EndIf
Enumeration : #Win : #image1 : EndEnumeration
#flag=#PB_Window_SystemMenu | #PB_Window_ScreenCentered
Procedure grille(a,total)
If a=1
For i=1 To 225 ; efface tous les boutons du boom
If IsGadget(i) : FreeGadget(i) : EndIf
Next i
StartDrawing(WindowOutput(#win))
If total=>215 : affiche$= " T'ES TROP FORT "
Else : affiche$= " GAME OVER" : EndIf
DrawText(150,180,Str(total)+affiche$,#Black,RGB(250,250,80)) : Delay(1500)
DrawText(150,180,Str(total)+affiche$,RGB(250,250,80),RGB(250,250,80))
StopDrawing()
EndIf
For u=0 To 350 Step 25 : c1+2 ; position des boutons
For uu=0 To 350 Step 25 : c2+2
StartDrawing(ImageOutput(#image1))
DrawingMode(#PB_2DDrawing_Gradient)
BackColor(RGB(Random(255), Random(255), Random(255)))
FrontColor(RGB(Random(255), Random(255), Random(255)))
BoxedGradient(0, 0, 25, 25) : Circle(12, 12, 13)
BackColor(RGB(Random(255), Random(255), Random(255)))
FrontColor(RGB(Random(255), Random(255), Random(255)))
BoxedGradient(2, 2, 21, 21) : Circle(12, 12, 7) : StopDrawing()
ButtonImageGadget(b+1,uu+c2,u+c1,25,25, ImageID(#image1)) : b+1
Next uu : c2=0 :
Next u
EndProcedure
CreateImage(#image1,25,25,32) : CreateImage(5,25,25,32) ;image noir pour mines
OpenWindow(#Win, 0, 0, 407, 407, "Pseudo Démineur",#flag)
SetWindowColor(#Win,RGB(250,250,80)) : grille(0,0) : Dim boom(9)
For i=1 To 9 : boom(i)=Random(224)+1 : Next i ;debut du jeu emplacement des mines
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : End
Case #PB_Event_Gadget
n=Random(6)
For z=0 To 9 ; test si boom et nouveau champ des mines
If boom(z)=EventGadget() : n=-1
If IsGadget(boom(z)) : SetGadgetAttribute(boom(z),#PB_Button_Image, ImageID(6))
EndIf: Break:EndIf
Next z
If n=-1
For i=0 To 9 ; Affiche les bombes drapeaux damiers avec version PB5
If IsGadget(boom(i)) : SetGadgetAttribute(boom(i),#PB_Button_Image, ImageID(6))
EndIf
Next i
If total<215 : m1$="Fin de la Partie" : m2$=": Pour Gagner il faut Jouer!"
MessageRequester(m1$,Str(total)+m2$,#PB_MessageRequester_Ok)
EndIf : grille(1,total) : total=0
For w=0 To 9 : boom(w)=Random(224)+1 : Next w :
EndIf
If n<>-1
flag = #True
For i=0 To 9 ;test si c'est une mine
If boom(i)=EventGadget()
flag = #False:Break
EndIf
Next i
If flag And IsGadget(EventGadget()) : FreeGadget(EventGadget()) : total+1 : EndIf
If n<5 : j = 0
ElseIf n=5 : j = 10
Else : j = 30
EndIf
For o=1 To j ;supprime j cases
h=Random(224)+1
flag = #True
For i=0 To 9 : ;test si c'est une mine
If boom(i)=h :flag = #False : o - 1: Break
EndIf
Next i
If flag : If IsGadget(h) : FreeGadget(h) : total+1 :Else : o-1 : EndIf : EndIf
If total >= 215 : Break : EndIf
Next o
EndIf
EndSelect
ForEver