Page 1 sur 1

Thread et débogueur

Publié : mer. 08/sept./2004 11:45
par filperj
Je savais pas trop dans quelle section poster ça, je sais pas si c'est un bug ou si c'est moi qui ait pas tout compris...
Bref, voilà un prog qui me semble marcher correctement sans débogueur, mais avec ça fait un peu n'importe quoi, et pas toujours la même chose.. (même des trucs rigolos que je saurais pas faire exprès, desfois :lol: )
Dites moi ce que ça donne chez vous.

Code : Tout sélectionner

Structure lignedepanneaux
   p.b[256]
EndStructure

Structure tableaudepanneaux
   StructureUnion
      l.lignedepanneaux[256]
      b.b[256*256]
   EndStructureUnion
EndStructure

Global grospanneau.tableaudepanneaux

#segm=256*256-1
Procedure pannellenthread(foo)
   Repeat
      x+1
      grospanneau\b[(x)&#segm]=(grospanneau\b[(x-1)&#segm]+grospanneau\b[(x+1)&#segm]+grospanneau\b[(x-256)&#segm]+grospanneau\b[(x+256)&#segm])/4+1
   ForEver
EndProcedure

thr=CreateThread(@pannellenthread(),0)

If thr=0 : Debug "Thread non créé" : EndIf

;ThreadPriority(thr,2)

If InitSprite()
   If OpenWindow(0,0,0,256,256,#pb_window_systemmenu|#pb_window_maximizegadget,"") And OpenWindowedScreen(WindowID(),0,0,256,256,1,0,0)
      CreateSprite(0,256,256,0)
      SetFrameRate(30)
      Repeat
         sproutput=SpriteOutput(0)
         If sproutput
         If StartDrawing(sproutput)
            ;PauseThread(thr)
            For y=0 To 255 : For x=0 To 255
               coul=grospanneau\l[y]\p[x]&255
               Plot(x,y,coul<<8)
            Next : Next
            ;ResumeThread(thr)
         StopDrawing() : EndIf
         EndIf
         DisplaySprite(0,0,0)
         FlipBuffers(1)
      Until WindowEvent()=#pb_event_closewindow
   EndIf
EndIf

Publié : mer. 08/sept./2004 13:24
par Oliv
Avec débuger ça donne parfois de jolies choses :lol: :lol:
Même une fois l'erreur "IndexArray out of bound", c'est vrai que c'est pas très normal