mais au moment ou le debugger arrive a l'instruction "calldebugger"
il est imposible de tracer pas a pas !!!

le prg est en fait arreté !! pourquoi ?
autre question !
il me semble que la fonction "AdresseMemoire =DrawingBuffer() '
ne me renvoie pas autre chose que zero !!

;- déclarations des procedures
;*******************************************************************************************************
Declare msg_erreur(chaine$)
;*******************************************************************************************************
;- test du materiel
;*******************************************************************************************************
If InitSprite ()=0
msg_erreur( "impossible d'initialiser les sprites" + Chr (10)+ " le prg va quitter " )
End
EndIf
If InitMouse ()=0
msg_erreur( "impossible d'initialiser la souris" + Chr (10)+ " le prg va quitter " )
End
EndIf
If InitKeyboard ()=0
msg_erreur( "impossible d'initialiser le clavier" + Chr (10)+ " le prg va quitter " )
End
EndIf
If InitJoystick()=0
msg_erreur( "impossible d'initialiser le joystick" + Chr (10)+ " on va continuer sans " )
joystick=0
Else
joystick=1 ; le joystick est present !!
EndIf
;*******************************************************************************************************
;-initialisations constante structure tableaux variables
;*******************************************************************************************************
Enumeration
#sprite
EndEnumeration
Structure balle
X.w
Y.w
sensx.l
sensy.l
EndStructure
nbr_balle=25
Dim balle.balle(nbr_balle) ; on cree 10 instance de balle
; affecte des coordonees aleatoire et place les balles
xd=32
yd=50
For i=0 To nbr_balle
tirage:
yd=yd+100 : If yd>768-64:yd=50 : xd=xd+100: If xd>1024-64: xd=32: EndIf : EndIf
balle(i)\X=yd ; placement de la balle
balle(i)\Y=xd
balle(i)\sensx=3 ; determine le sens de deplacement de la balle et la vitesse
balle(i)\sensy=3
Next i
;*******************************************************************************************************
;-ouvre ecran
;*******************************************************************************************************
OpenScreen (1024, 768, 32, "squelette ecran" )
KeyboardMode (1)
;*******************************************************************************************************
;-creation des sprites
;*******************************************************************************************************
For sprite=0 To nbr_balle
coul=coul+10
CreateSprite ( sprite,32,32) ; on cree un sprite (une balle)
StartDrawing ( SpriteOutput (sprite) ) ; on va dessiner dans le sprite
Circle (16, 16, 16, RGB ($F1,coul,$F)) ; on dessine un rond jaune dedans(dans le sprite)
Locate (10, 8 )
DrawText ( Str (sprite))
StopDrawing ()
Next sprite
;*******************************************************************************************************
;-boucle principale
Repeat
;- examine le materiel
;*******************************************************************************************************
ExamineKeyboard ()
ExamineMouse ()
If joystick=1
ExamineJoystick () ; optionel on examine seulement si present !!
EndIf
;*******************************************************************************************************
; serie de gosub ou appel de procedure a mettre ici
;*******************************************************************************************************
CallDebugger
Gosub dessin_sur_ecran ; trace une ligne sur l'ecran et une serie de cercles
Gosub calcul_des_rebonds
;*******************************************************************************************************
;-affichage des sprites
;*******************************************************************************************************
For i=0 To nbr_balle
DisplayTransparentSprite (i, balle(i)\X, balle(i)\Y)
Next i
;*******************************************************************************************************
FlipBuffers () ; affiche le resultat a l'ecran !
ClearScreen (0, 0,0) ; nettoie l'ecran apres affichage
Until KeyboardPushed ( #PB_Key_Escape ) Or MouseButton (2)
End
; *********** zone des DataSection ***************************
; *****************************************************************
; ********* Zone des sous-programme ******************
dessin_sur_ecran:
StartDrawing ( ScreenOutput ())
AdresseMemoire = DrawingBuffer ()
Line (0, 200, 1024, 0 , RGB ($F2,$FF,$EA) )
For i=50 To 1 Step-10
Circle (1024/2, 768/2, i , RGB (10,i*2,i*2))
Next i
StopDrawing ()
Return
; ----------------------------------------------------------------------------------------------------------------------------
calcul_des_rebonds:
For i2=0 To nbr_balle
For a2=0 To i2
If a2<>i2
If SpritePixelCollision (i2, balle(i2)\X, balle(i2)\Y, a2, balle(a2)\X, balle(a2)\Y)<>0
balle(a2)\sensx=-balle(a2)\sensx
balle(a2)\sensy=-balle(a2)\sensy
EndIf
EndIf
Next a2
Next i2
For i=0 To nbr_balle
; bord gauche
If balle(i)\X<1
balle(i)\sensx=-balle(i)\sensx
EndIf
; bord droit
If balle(i)\X>1024-32
balle(i)\sensx=-balle(i)\sensx
EndIf
; bord haut
If balle(i)\Y<1
balle(i)\sensy=-balle(i)\sensy
EndIf
; bord bas
If balle(i)\Y>768-32
balle(i)\sensy=0
balle(i)\sensx=0
EndIf
Next i
; ***********************
; cree un rebond aleatoire
For i=0 To nbr_balle
balle(i)\X=balle(i)\X+balle(i)\sensx ; fait avancer les balles
balle(i)\Y=balle(i)\Y+balle(i)\sensy
Next i
Return
; *************************************************************
; **************** Zone des procedures ******************
Procedure msg_erreur(chaine$)
MessageRequester ( "erreur" , chaine$, #PB_MessageRequester_Ok )
EndProcedure
; *************************************************************