Genre ça... En l'affichant à chaque balayage. Sinon tu peux aussi utiliser grabsprite en réduisant la largeur de 1 pixel et en raffichant le sprite décalé de 1 avec un point supplémentaire... Il y a plusieurs méthodes. Tu peux aussi utiliser poke pour évcrire directement sur l'écran su tu as besoin d'une vitesse encore supplémentaire.
Code : Tout sélectionner
;{-initialisation
If InitSprite() = 0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSprite3D()=0 Or InitSound()=0:MessageRequester("Error","Error DirectX",0):EndIf
ExamineDesktops()
Global xmax=DesktopWidth(0),ymax=DesktopHeight(0) ;resolution ecran
;ouvre un écran
OpenScreen(xmax,ymax,DesktopDepth(0),"Test",#PB_Screen_WaitSynchronization,60)
LoadFont(0, "small fonts",8)
;}
Global NewList debit.i()
Procedure graph(debit.i)
AddElement(debit())
debit()=debit
StartDrawing(ScreenOutput())
;affiche la graduation
For i=0 To 200 Step 20
LineXY(0,i,400,i,RGB(0,0,70))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(0,i,Str((200-i)>>1))
Next i
DrawText(20,0,"Mbit /s")
;affiche le graph
FirstElement(debit()):Y_old=debit()
ForEach debit()
LineXY(X,debit(),X,Y_old,#Green)
Y_old=debit():X+1
Next
StopDrawing()
;scroll de la liste chainée
If ListSize(debit())=400:FirstElement(debit()):DeleteElement(debit()):LastElement(debit()):EndIf
EndProcedure
T=50
Repeat
ExamineKeyboard()
FlipBuffers()
ClearScreen(#Black)
If T<30:Ta=1:EndIf
If T>90:Ta=-1:EndIf
T=T+Ta*Random(2)+Random(2)-1
graph(T)
Until KeyboardPushed(#PB_Key_Escape)
Dernière modification par
Fig le mer. 16/nov./2011 22:49, modifié 2 fois.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits