Page 1 sur 1

voici Mange tout

Publié : ven. 05/mars/2004 20:23
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]

Publié : ven. 05/mars/2004 20:43
par nico
Très sympa l'effet, ça me fait penser à un virus....je ne sais plus le nom!

Publié : ven. 05/mars/2004 21:08
par filperj
Héhé... Bien trouvé :D

Publié : ven. 05/mars/2004 21:26
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:

voici la correction

Publié : ven. 05/mars/2004 22:11
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 

Publié : ven. 05/mars/2004 22:17
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

Publié : sam. 06/mars/2004 0:27
par Patrick88
génial ! tout simplement ... sisi 8O 8O 8O 8O

félicitation !

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

Patrick

Publié : sam. 06/mars/2004 13:38
par Pierre
c'est super!!!
(la je suis en traine d'executer le programme en même temp que j'écris :D )

Publié : sam. 06/mars/2004 14:44
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: