[B3D] FPS anzeigen (Programmieren)

[B3D] FPS anzeigen (Programmieren)

Hi,

ich habe mich jetzt mal an Blitz3D herangewagt und habe mir einfach mal eins der Tutorials genommen und es ein wenig umgeschrieben. Jetzt will ich die FPS anzeigen lassen, weiß aber nicht, wie. Könnt ihr mir da helfen? Hier der Code:

Graphics3D 800,600

SetBuffer BackBuffer()

fps_max = 50
fps_timer = CreateTimer(fps_max)

camera=CreateCamera()
CameraViewport camera,0,-100,800,600

light=CreateLight()

man=LoadMD2( "car.md2" )
PositionEntity man,0,-30,600
RotateEntity man,0,180,0

AnimateMD2 man,1,.1,32,46


While Not KeyHit(1)

WaitTimer(fps_timer)

If dist<500 MoveEntity man,0,0,.5
If dist=500 AnimateMD2 man,1,.05,0,31

dist=dist+1

UpdateWorld
RenderWorld

Color 255,0,0
Text 10,10,"fps_max : " + fps_max
Text 10,20,"distance: " + dist
Flip

Wend
End
ok .... da ist der fehler schon im syntax (d.H. es die befehle an der falschen stelle)


also das was du machst wartet immer bis ein timer (der aller 50 [millisekunden denk ich mir hier mal] zuschlägt)

also wenns was zeichnet sollte es mit maximal 20 fps laufen (es kann sein das dein projekt mal graphiken beinhaltet wo B3D etwas mehr als 50 ms zum rendern braucht wodurch der ein takt aus gelassen wird.

aber egal es sieht in vb n bissel anders aus deshalb mal heute als PAP:

Variablen initzalisieren

Objekte erstellen und initzalisieren
(hier muss der timer gestartet werden und auf eine gewisse zahl eingestelt werden)
mainloop:

temp = temp + 1 (!!!!!!!!!!!!!)

ändere position von 3d-pbjekten ....
zeichne 3D-scene
2D-text x,y,"fps" + fps

und aufm bildschirm ausgeben
und weiter bei mainloop



so nu kommt das wichtigste

Event_Timer (heist bei B3D anders)
fps = temp * faktor (faktor ist zb 20 wenn der timmer aller 20 ms zuschlägt)
temp = 0
ende der funktion


diese variente zeigt nach jedem timer event wieviele frames pro sekunde erzeugt wurden also fps geht erst später runder...

zweite möglich keit :

Variablen initzalisieren

Objekte erstellen und initzalisieren
Stopuhr erstellen.... (kA ob es sowas gibt)
mainloop:
Stopuhrstart()
ändere position von 3d-pbjekten ....
zeichne 3D-scene
Stopuhrstop()
fps = 1000 / stopuhr.milliseconds
2D-text x,y,"fps" + fps

und aufm bildschirm ausgeben
und weiter bei mainloop


diese variente ist einfacher und nimmt die zeit für ein frame und rechnet da raus die fps
ajo stop uhr nach zeit abnahme auf 0 setzten ...
Logge dich ein um einen Beitrag zu schreiben.