voici Mange tout

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Syszz
Messages : 9
Inscription : lun. 23/févr./2004 15:44

voici Mange tout

Message par Syszz »

je vous presente ces quelques lignes de code qui vous donnera des idées pour vos future programmes

une fois le programme lancé il suffit de faire des cliques gauche de la souris pour mettre une petite balle là ou on veut puis pour tout arreter touche echappe

Code : Tout sélectionner

;================================
;=          Mange tout          =
;=    le Lundi 1er Mars 2004    =
;=          Pascal dumas        =
;================================ 

#ENUM_CURRENT_SETTINGS = -1 
#ENUM_REGISTRY_SETTINGS = -2 

DefType.DEVMODE dm 

EnumDisplaySettings_ (#NULL, #ENUM_CURRENT_SETTINGS, @dm) 
Largeur=(dm\dmPelsWidth)
Hauteur=(dm\dmPelsHeight) 
Mouss_x.w
Mouss_y.w
nb.w=200;nb de balles
nbd.w=0

Dim ball_x.w(nb)
Dim ball_y.w(nb)
Dim Tball_x.w(nb)
Dim Tball_y.w(nb)
Dim dir_x.b(nb)
Dim dir_y.b(nb)
Dim c_r.w(nb)
Dim c_g.w(nb)
Dim c_b.w(nb)

#wMem=0 
Global Mem.l
Mem = AllocateMemory(#wMem,1280,0) 

Procedure.l DesktopOutput() 
 PokeL(Mem, 1) 
  ProcedureReturn Mem 
EndProcedure 
If OpenWindow(1, 0, 0, 0, 0, #PB_Window_Invisible, "");là je suis obligé de mettre une fenettre car sinon il ne trouve pas la souris
EndIf
 
Delay(2000)
beep_(1800,80) 
 
Repeat

If GetAsyncKeyState_(#VK_LBUTTON) And nbd<nb;ou #VK_LBUTTON ou #VK_RBUTTON si vous voulez utiliser un autre bouton
    While GetAsyncKeyState_(#VK_LBUTTON) :Wend
    

    nbd=nbd+1
    ball_x(nbd)=WindowMouseX()
    ball_y(nbd)=WindowMouseY()
    If ball_x(nbd)<5
       ball_x(nbd)=ball_x(nbd)+5
       EndIf
    If ball_x(nbd)>(Largeur-5)
        ball_x(nbd)=ball_x(nbd)-5
        EndIf
    If  ball_y(nbd)<5
        ball_y(nbd)=ball_y(nbd)+5
        EndIf              
    If ball_y(nbd)>(Hauteur-5)
        ball_y(nbd)=ball_y(nbd)-5
        EndIf
         
     
       
    Tball_x(nbd)=ball_x(i)
    Tball_y(nbd)=ball_y(i)

    dir_x(nbd)=Random(1)+1
    dir_y(nbd)=Random(1)+1
    c_r(nbd)=Random(254)+1
    c_g(nbd)=Random(254)+1
    c_b(nbd)=Random(254)+1

    If c_r(nbd)<150 And c_g(i)<150 And c_b(i)<150
        c_r(nbd)=Random(100)+154
        c_g(nbd)=Random(100)+154
        c_b(nbd)=Random(100)+154
    EndIf
EndIf


StartDrawing(DesktopOutput()) 
For i=1 To nbd
    
If dir_x(i)=1 
            ball_x(i)=ball_x(i)-1;(1+(Random(20)/20))
            If ball_x(i)<2
                ball_x=ball_x+1       
                dir_x(i)=2
                Goto aff
            EndIf 
        If Point(ball_x(i)-1, ball_y(i))>1 Or Point(ball_x(i)-1, ball_y(i)-1)>1 Or Point(ball_x(i)-1, ball_y(i)+1)>1     
            Plot(ball_x(i)-1, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i),RGB($00,$00,$00))    
            dir_x(i)=2
            If dir_y(i)=1
                ball_y(i)=ball_y(i)-1
                EndIf
            Goto affy
        EndIf
EndIf


If dir_x(i)=2 
        ball_x(i)=ball_x(i)+1
        If ball_x(i)>(Largeur)-3
            ball_x=ball_x-1
            dir_x(i)=1
            Goto aff       
        EndIf
        If Point(ball_x(i)+1, ball_y(i))>1  Or Point(ball_x(i)+1, ball_y(i)-1) Or Point(ball_x(i)+1, ball_y(i)+1)        
            Plot(ball_x(i)+1, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i),RGB($00,$00,$00))

            dir_x(i)=1
            If dir_y(i)=2
                ball_y(i)=ball_y(i)+1
            EndIf
            Goto aff
         EndIf
EndIf
affy:
   
If dir_y(i)=1
        ball_y(i)=ball_y(i)-1
        If ball_y(i)<5
            dir_y(i)=2
            Goto aff       
        EndIf
        If Point(ball_x(i), ball_y(i)-2)>1 Or Point(ball_x(i)-1, ball_y(i)-2)>1 Or Point(ball_x(i)+1, ball_y(i)-2)>1
            Plot(ball_x(i), ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-4,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-4,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)-4,RGB($00,$00,$00))

            dir_y(i)=2          
           
        EndIf
        Goto aff
EndIf
        
If dir_y(i)=2
        ball_y(i)=ball_y(i)+1
        If ball_y(i)>(hauteur)-4
        dir_y(i)=1
        Goto aff      
        EndIf
        If Point(ball_x(i), ball_y(i)+2)>1 Or Point(ball_x(i)-1, ball_y(i)+2)>1 Or Point(ball_x(i)+1, ball_y(i)+2)>1
            Plot(ball_x(i), ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+4,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+4,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)+4,RGB($00,$00,$00))

            dir_y(i)=1
        EndIf
                
EndIf  
 aff:

Plot(Tball_x(i), Tball_y(i),RGB($00,$00,$00))
Plot(Tball_x(i), Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i), Tball_y(i)-1,RGB($00,$00,$00))

Plot(Tball_x(i)+1, Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i)+1, Tball_y(i),RGB($00,$00,$00))
Plot(Tball_x(i)+1, Tball_y(i)-1,RGB($00,$00,$00))

Plot(Tball_x(i)-1, Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i)-1, Tball_y(i)-1,RGB($00,$00,$00))
Plot(Tball_x(i)-1, Tball_y(i),RGB($00,$00,$00))


   
Plot(ball_x(i), ball_y(i),RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i), ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i), ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))

Plot(ball_x(i)+1, ball_y(i),RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)+1, ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)+1, ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))

Plot(ball_x(i)-1, ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)-1, ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)-1, ball_y(i),RGB(c_r(i),c_g(i),c_b(i))) 
 
Tball_x(i)=ball_x(i) 
Tball_y(i)=ball_y(i) 
Next i
  StopDrawing()
If nbd<45
    Delay(5)    
    Else
    Delay(1)
    EndIf
If GetAsyncKeyState_(#VK_ESCAPE)
    End
EndIf  
Until EventID=#PB_Event_CloseWindow
End 
[/quote][/quote]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Très sympa l'effet, ça me fait penser à un virus....je ne sais plus le nom!
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Héhé... Bien trouvé :D
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

C'est extra :D

j'ai essayé de rendre tous l'écran noir mais le prog s'arrête aléatoirement pour la raison suivante : drawing plot() outside the jesaispluslasuite

mais c'est peut-être dû à win98 :roll:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Syszz
Messages : 9
Inscription : lun. 23/févr./2004 15:44

voici la correction

Message par Syszz »

mince j'avais pas vu qu'il avait un bug avec le mode debogeur sur on
et il y a aussi le bug en fonction de certaine resolution

voici le bon code

Code : Tout sélectionner

;================================
;=          Mange tout          =
;=    le Lundi 1er Mars 2004    =
;=          Pascal dumas        =
;================================ 

#ENUM_CURRENT_SETTINGS = -1 
#ENUM_REGISTRY_SETTINGS = -2 

DefType.DEVMODE dm 

EnumDisplaySettings_ (#NULL, #ENUM_CURRENT_SETTINGS, @dm) 
Largeur=(dm\dmPelsWidth)
Hauteur=(dm\dmPelsHeight) 
Mouss_x.w
Mouss_y.w
nb.w=200;nb de balles
nbd.w=0

Dim ball_x.w(nb)
Dim ball_y.w(nb)
Dim Tball_x.w(nb)
Dim Tball_y.w(nb)
Dim dir_x.b(nb)
Dim dir_y.b(nb)
Dim c_r.w(nb)
Dim c_g.w(nb)
Dim c_b.w(nb)

#wMem=0 
Global Mem.l
Mem = AllocateMemory(#wMem,1280,0) 

Procedure.l DesktopOutput() 
 PokeL(Mem, 1) 
  ProcedureReturn Mem 
EndProcedure 
If OpenWindow(1, 0, 0, 0, 0, #PB_Window_Invisible, "");là je suis obligé de mettre une fenettre car sinon il ne trouve pas la souris
EndIf
 
;Delay(1000)
beep_(1800,80) 
 
Repeat

If GetAsyncKeyState_(#VK_LBUTTON) And nbd<nb;ou #VK_LBUTTON ou #VK_RBUTTON si vous voulez utiliser un autre bouton
    While GetAsyncKeyState_(#VK_LBUTTON) :Wend
    

    nbd=nbd+1
    ball_x(nbd)=WindowMouseX()
    ball_y(nbd)=WindowMouseY()
    If ball_x(nbd)<5
       ball_x(nbd)=ball_x(nbd)+5
       EndIf
    If ball_x(nbd)>(Largeur-5)
        ball_x(nbd)=ball_x(nbd)-5
        EndIf
    If  ball_y(nbd)<5
        ball_y(nbd)=ball_y(nbd)+5
        EndIf              
    If ball_y(nbd)>(Hauteur-5)
        ball_y(nbd)=ball_y(nbd)-5
        EndIf
         
     
       
    Tball_x(nbd)=ball_x(i)
    Tball_y(nbd)=ball_y(i)

    dir_x(nbd)=Random(1)+1
    dir_y(nbd)=Random(1)+1
    c_r(nbd)=Random(254)+1
    c_g(nbd)=Random(254)+1
    c_b(nbd)=Random(254)+1

    If c_r(nbd)<150 And c_g(i)<150 And c_b(i)<150
        c_r(nbd)=Random(100)+154
        c_g(nbd)=Random(100)+154
        c_b(nbd)=Random(100)+154
    EndIf
EndIf


StartDrawing(DesktopOutput()) 
For i=1 To nbd
    
If dir_x(i)=1 
            ball_x(i)=ball_x(i)-1
            If ball_x(i)<3
                ball_x=ball_x+1       
                dir_x(i)=2
                Goto aff
            EndIf 
        If Point(ball_x(i)-1, ball_y(i))>1 Or Point(ball_x(i)-1, ball_y(i)-1)>1 Or Point(ball_x(i)-1, ball_y(i)+1)>1     
            Plot(ball_x(i)-1, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-2, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)-3, ball_y(i),RGB($00,$00,$00))    
            dir_x(i)=2
            If dir_y(i)=1
                ball_y(i)=ball_y(i)-1
                EndIf
            Goto affy
        EndIf
EndIf


If dir_x(i)=2 
        ball_x(i)=ball_x(i)+1
        If ball_x(i)>(Largeur)-3
            ball_x=ball_x-1
            dir_x(i)=1
            Goto aff       
        EndIf
        If Point(ball_x(i)+1, ball_y(i))>1  Or Point(ball_x(i)+1, ball_y(i)-1) Or Point(ball_x(i)+1, ball_y(i)+1)        
            Plot(ball_x(i)+1, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+2, ball_y(i),RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i)-1,RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i)+1,RGB($00,$00,$00))
            Plot(ball_x(i)+3, ball_y(i),RGB($00,$00,$00))

            dir_x(i)=1
            If dir_y(i)=2
                ball_y(i)=ball_y(i)+1
            EndIf
            Goto aff
         EndIf
EndIf
affy:
   
If dir_y(i)=1
        ball_y(i)=ball_y(i)-1
        If ball_y(i)<5
            dir_y(i)=2
            Goto aff       
        EndIf
        If Point(ball_x(i), ball_y(i)-2)>1 Or Point(ball_x(i)-1, ball_y(i)-2)>1 Or Point(ball_x(i)+1, ball_y(i)-2)>1
            Plot(ball_x(i), ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)-3,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)-4,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)-4,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)-4,RGB($00,$00,$00))

            dir_y(i)=2          
           
        EndIf
        Goto aff
EndIf
        
If dir_y(i)=2
        ball_y(i)=ball_y(i)+1
        If ball_y(i)>(hauteur)-4
        dir_y(i)=1
        Goto aff      
        EndIf
        If Point(ball_x(i), ball_y(i)+2)>1 Or Point(ball_x(i)-1, ball_y(i)+2)>1 Or Point(ball_x(i)+1, ball_y(i)+2)>1
            Plot(ball_x(i), ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+2,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)+3,RGB($00,$00,$00))
            Plot(ball_x(i)-1, ball_y(i)+4,RGB($00,$00,$00))
            Plot(ball_x(i)+1, ball_y(i)+4,RGB($00,$00,$00))
            Plot(ball_x(i), ball_y(i)+4,RGB($00,$00,$00))

            dir_y(i)=1
        EndIf
                
EndIf  
 aff:
If nbd<>0
Plot(Tball_x(i), Tball_y(i),RGB($00,$00,$00))
Plot(Tball_x(i), Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i), Tball_y(i)-1,RGB($00,$00,$00))

Plot(Tball_x(i)+1, Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i)+1, Tball_y(i),RGB($00,$00,$00))
Plot(Tball_x(i)+1, Tball_y(i)-1,RGB($00,$00,$00))

Plot(Tball_x(i)-1, Tball_y(i)+1,RGB($00,$00,$00))
Plot(Tball_x(i)-1, Tball_y(i)-1,RGB($00,$00,$00))
Plot(Tball_x(i)-1, Tball_y(i),RGB($00,$00,$00))


   
Plot(ball_x(i), ball_y(i),RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i), ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i), ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))

Plot(ball_x(i)+1, ball_y(i),RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)+1, ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)+1, ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))

Plot(ball_x(i)-1, ball_y(i)+1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)-1, ball_y(i)-1,RGB(c_r(i),c_g(i),c_b(i)))
Plot(ball_x(i)-1, ball_y(i),RGB(c_r(i),c_g(i),c_b(i))) 
 
Tball_x(i)=ball_x(i) 
Tball_y(i)=ball_y(i)
EndIf
 
Next i
  StopDrawing()
If nbd<45
    Delay(5)    
    Else
    Delay(1)
    EndIf
If GetAsyncKeyState_(#VK_ESCAPE)
    End
EndIf  
Until EventID=#PB_Event_CloseWindow
End 
Syszz
Messages : 9
Inscription : lun. 23/févr./2004 15:44

Message par Syszz »

Le Soldat Inconnu a écrit :C'est extra :D

j'ai essayé de rendre tous l'écran noir mais le prog s'arrête aléatoirement pour la raison suivante : drawing plot() outside the jesaispluslasuite

mais c'est peut-être dû à win98 :roll:
c 'est à cause d'une balle qui est sortie à gauche de l'ecran (bug) dans la limite de ball_x pour le retour à droite car j'avais pas trop testé dans d'autre resolution
regards le new code en haut et là plus de pb :D
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

génial ! tout simplement ... sisi 8O 8O 8O 8O

félicitation !

arg ! y'en a partout ! vite ma tapette ......................

Patrick
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

c'est super!!!
(la je suis en traine d'executer le programme en même temp que j'écris :D )
Image
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

plus aucun problème avec la nouvelle version. je garde ton code, je pense qu'il me servira pour coder des annerie graphique sur window :wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre