Page 1 sur 1
[RESOLU] setFrameRate
Publié : mer. 12/sept./2018 10:03
par microdevweb
Bonjour à tous,
Voici ma question, si j'utilise
exemple :
La vitesse de déroulement sera-t-elle égale quelle que soit la vitesse du Pc ou faut-il encore ajouter un calcul ?
Merci
Re: setFrameRate
Publié : mer. 12/sept./2018 10:24
par falsam
SetFrameRate() définit uniquement le nombre d'images par seconde affiché dans ton screen.
microdevweb a écrit :La vitesse de déroulement sera-t-elle égale quelle que soit la vitesse du Pc ou faut-il encore ajouter un calcul ?
Je pense que tu devras ajouter une notion de delta time.
https://www.purebasic.fr/french/viewtop ... 48#p173648
Ayant des doutes, je vais faire un essai

Re: setFrameRate
Publié : mer. 12/sept./2018 10:31
par microdevweb
Merci falsam,
Je le pensais bien et c'est ce que l'on doit faire avec d'autre soft en général
Re: [RESOLUS] setFrameRate
Publié : mer. 12/sept./2018 10:50
par falsam
Si l'ensemble du traitement est dans la boucle d'affichage, SetFrameRate() à l'air suffisant.
Code : Tout sélectionner
EnableExplicit
Define n, x, y, Buffer.s
InitSprite() : InitKeyboard()
LoadFont(0, "", 200)
OpenWindow(0, 0, 0, 0, 0, "FullScreen", #PB_Window_BorderLess | #PB_Window_Maximize)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0))
;Initialisation du nombre d'images par seconde
SetFrameRate(30) ; <-- Rempalace 30 par 1
;Loop
Repeat : Repeat : Until WindowEvent() = 0
;Préparation de l'affichage
ClearScreen(RGB(75, 0, 130))
StartDrawing(ScreenOutput())
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
x = (ScreenWidth() - TextWidth(Buffer))/2
y = (ScreenHeight() - TextWidth(Buffer))/2
DrawText(x, y, Str(n))
StopDrawing()
;Remplacement de l'image précédente par la nouvelle image
FlipBuffers()
;Mise à jours du traitement avant affichage suivant
n + 1
Buffer = Str(n)
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_Escape)
Re: [RESOLU] setFrameRate
Publié : mer. 12/sept./2018 19:59
par boby
SetFraleRate() limite le nombre d'appel de FlipBuffer().
Si tu SetFrameRate(30), ton FlipBuffer() seras appelé 30 fois par secondes.
Si tu SetFrameRate() et que tu n'utilise que du startdrawing/stopdrawing (donc pas de flipbuffer()) ton SetFrameRate() n'auras aucun effet.