Wie ermittelt man die FPS-Rate?
Übersicht

Ensign JoeBetreff: Wie ermittelt man die FPS-Rate? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Titel sagt alles | ||
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
so :
Code: [AUSKLAPPEN] Function FPS() Frames = Frames + 1 If ZaehlStart + 1001 < MilliSecs() Then FramesJeSekunde = Frames Frames = 0 ZaehlStart = MilliSecs() EndIf Text 100, 10, FramesJeSekunde + " FPS" End Function mfg Freeman |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi,
so mach ich es... Code: [AUSKLAPPEN] Dim FPS(3)
Code: [AUSKLAPPEN] Text 9,9,"FPS:"+FPS(1):FPS(2)=FPS(2)+1:If MilliSecs()>FPS(3)+999 Then FPS(1)=FPS(2):FPS(2)=0:FPS(3)=MilliSecs()
ist im prinzip genauso brauche allerdings keine Globalen Variablen machen da Arrays immer Global sind |
||
[BB2D | BB3D | BB+]
|
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm, ich mache das auch so wie freeman, nur dass ich was von der funktion zurückliefern lasse. habe die immer in meiner util.bb, die ich in dutzenden meiner projekte benutze. ist in sofern praktisch, dass man im hauptprogramm eigentlich nur zu schreiben hat:
Code: [AUSKLAPPEN] Text 0,0,"fps: "+util_fps()
find ich toll so ![]() ![]() Code: [AUSKLAPPEN] Global fps_frames,fps_ms=MilliSecs(),fps_anzeige
Function Util_Fps() fps_frames = fps_frames+1 If MilliSecs()-fps_ms >= 1000 Then fps_anzeige = fps_frames fps_frames = 0 fps_ms = MilliSecs() EndIf Return fps_anzeige End Function habe gerade noch einen fpszähler aus einem älteren projekt von mir gefunden... nicht ganz so schön geschrieben, aber auch effektiv. Code: [AUSKLAPPEN] If fpsc >= 10 Then fps=1000.00/Float#(MilliSecs()-t)*10 : fpsc = 0 : t=MilliSecs()
fpsc = fpsc+1 |
||
MrKeks.net |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Ensign Joe
doch das passt mit der Function . Du musst natürlich die Funktion noch aufrufen und nicht das cls + flip vergessen beispiel : Code: [AUSKLAPPEN] Function FPS() Frames = Frames + 1 If ZaehlStart + 1001 < MilliSecs() Then FramesJeSekunde = Frames Frames = 0 ZaehlStart = MilliSecs() EndIf Text 100, 10, FramesJeSekunde + " FPS" End Function graphics 800,600 setbuffer backbuffer() repeat cls fps() flip until keydown(1) probier mal , das muss doch klappen ![]() |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Freeman:
deine variablen sind nicht Global, deswegen funst das auch nicht! Code: [AUSKLAPPEN] Global ZaehlStart,FramesJeSekunde ,Frames
setz das oben rein und es geht! |
||
[BB2D | BB3D | BB+]
|
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde die Version von Inarie am besten nachvollziehbar. Ich habe das Problem mit der Verdopplung der FPS-Werte mal gelöst. Die Funktion wird jetzt mit einem Parameter aufgerufen. Dieser bestimmt, ob der Counter die Framerate zählen soll oder ob er sie nur anzeigen soll.
Code: [AUSKLAPPEN] Global FPSSEC = MilliSecs(), FPS, FRAMES SetBuffer BackBuffer() Repeat Cls Text 0,0, FPS(1) ; Anzeigen und zählen Text 0,10, FPS(0) ; Nur anzeigen Flip Until KeyHit(1) End ; --- Frames per Second --- Function FPS(MODE) If MODE = 1 Then FRAMES = FRAMES + 1 If MilliSecs() - FPSSEC => 1000 Then FPS = FRAMES FRAMES = 0 FPSSEC = MilliSecs() EndIf EndIf Return FPS End Function ; --- Frames per Second --- |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich machs immer ungefähr so:
Code: [AUSKLAPPEN] loops=0 time1 = MilliSecs() While Not KeyDown(1) loops = loops+1 Color 255,255,255 Text 610, 50, fps If MilliSecs() - time1 > 1000 Then fps = loops:loops = 0:time1 = MilliSecs() ... Wend bzw lieber so, wenn die Hauptschleife übersichtlicher bleiben soll: [code] Graphics 640,480,16,2 Global fpsrate,loops, fpstime While Not KeyDown(1) Color 255,255,255 Text 10, 10, fps() Plot MouseX(),MouseY() Flip Cls Wend ;--- Function fps() loops = loops+1 If MilliSecs() - fpstime > 1000 Then fpsrate = loops loops = 0 fpstime = MilliSecs() End If Return fpsrate End Function [/code} |
||
- Zuletzt bearbeitet von Triton am Mi, Aug 23, 2006 19:02, insgesamt einmal bearbeitet
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Ich mach das immer so:
Code: [AUSKLAPPEN] ;Diese Funktion gibt die FPS aus Global lastTime Function fps(posX=0,posY=0) Color 255,255,255 ;Farbe weiß If lastTime < MilliSecs() currentFrames = 1000/(MilliSecs()-lastTime) End If Text posX,posY,"FPS: "+currentFrames lastTime = MilliSecs() End Function die funktion gibt die fps oben links aus wenn keine parameter übergeben werden. |
||
![]() |
PhOENiX |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wo kommt das nachher im Gnazen programm hin ??
MFG PhOENiX |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group