Mytic a écrit :Je devrai changer le liquide par des billes métalliques !
Comme ça la pression sera absorbée par le frottement.
 

 
tiens ça me fais penser a une connerie que j'avais pondu 
tu veux donner du poids a tes sprites ?? 
regarde comment on fait :
 
  
 
  
 ; connerie codé par Dobro  
  #dobro  =1
  #Police  =1
  #Sprite  =1
  #Window  =1
   Structure    sprite
  x.l
  Y.l
  sensx.l
  sensy.l
   EndStructure   
   Dim    sprite.sprite(1)
 ; ***********************************  
Resultat =    InitSprite   ()
   FontID    =    LoadFont   (  #Police  ,   "arial"   , 18,   #PB_Font_Bold   )
EcranX =    GetSystemMetrics_   (  #SM_CXSCREEN  ): ;=largeur de l'ecran  
EcranY =    GetSystemMetrics_   (  #SM_CYSCREEN  ): ;=hauteur de l'ecran  
     WindowID    =    OpenWindow   (  #Window  , 0, 0,320, 200,   "hello"   ,    #PB_Window_SystemMenu|#PB_Window_BorderLess   |#PB_Window_ScreenCentered ) 
  Result =    OpenWindowedScreen   (   WindowID   (  #Window  ) ,0,0, 320, 200, 1, 0,0)
  
   ; creation d'un Sprite  
     CreateSprite   (  #Sprite  , 64, 64)  
     StartDrawing   (   SpriteOutput   (  #Sprite  ) )  ; on dessine dedans  
     Circle   (32, 32, 32 ,    RGB   ($FF,$FF,$0)) 
     StopDrawing   () 
  
  
  Resultat =    InitMouse   ()  
  sprite(1)\x=160
  sprite(1)\Y=100
  sprite(1)\sensx=2
  sprite(1)\sensy=2
  
     Repeat   
       While       WindowEvent   () :    Wend   
       ExamineMouse   () 
       WindowEvent   ()  
       Delay   (2)
    
       If       MouseButton   (2)
         End    
       EndIf   
    
    sprite(  #Sprite  )\x=sprite(  #Sprite  )\x+sprite(1)\sensx
    sprite(  #Sprite  )\Y=sprite(  #Sprite  )\Y+sprite(  #Sprite  )\sensy
       If     sprite(  #Sprite  )\x<0
      sprite(  #Sprite  )\sensx=-sprite(  #Sprite  )\sensx
      xwin =    WindowX   (  #Window  )
      ywin =    WindowY   (  #Window  ) 
         ResizeWindow   (   #Window  ,xwin-20,ywin,  #PB_Ignore  ,  #PB_Ignore  )  
         Beep_   (100,50)
       EndIf   
       If     sprite(1)\x>320-64
      sprite(  #Sprite  )\sensx=-sprite(  #Sprite  )\sensx
      xwin =    WindowX   (  #Window  )
      ywin =    WindowY   (  #Window  ) 
         ResizeWindow   (   #Window  ,xwin+20,ywin,  #PB_Ignore  ,  #PB_Ignore  )  
         Beep_   (100,50)
       EndIf   
       If     sprite(  #Sprite  )\Y>200-64
      sprite(  #Sprite  )\sensy=-sprite(  #Sprite  )\sensy
      xwin =    WindowX   (  #Window  )
      ywin =    WindowY   (  #Window  ) 
         ResizeWindow   (   #Window  ,xwin,ywin+20,  #PB_Ignore  ,  #PB_Ignore  )  
         Beep_   (80,50)
       EndIf   
       If     sprite(  #Sprite  )\Y<0
      sprite(  #Sprite  )\sensy=-sprite(  #Sprite  )\sensy
      xwin =    WindowX   (  #Window  )
      ywin =    WindowY   (  #Window  ) 
         ResizeWindow   (  #Window  , xwin,ywin-20,  #PB_Ignore  ,  #PB_Ignore  )  
         Beep_   (80,50)
       EndIf   
    
       DisplaySprite   (  #Sprite  , sprite(  #Sprite  )\x, sprite(  #Sprite  )\Y) 
    
    
       FlipBuffers   (): ; affiche l'ecran  
       ClearScreen   (   RGB   (0, 0, 0)) : ;efface l'ecran  
    
     Until    Event=  #PB_Event_CloseWindow