FPS begrenzen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

obilaner

Betreff: FPS begrenzen

BeitragSa, Mai 06, 2017 8:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich würde gerne die FPS begrenzen, sodass ich eine Animation aus mehreren bmp bauen kann ohne das es von der Rechnergeschwindigkeit abhängig ist wie schnell diese Animation läuft. Wie mache ich dies am besten?

Midimaster

BeitragSa, Mai 06, 2017 8:35
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Global FPS%=CreateTimer(60) ; bedeutet 60 bilder pro Sekunde
;Hauptschleife:
Repeat
Cls
; hier deine Aktionen
Flip 0
WaitTimer FPS
Until KeyHit(1)
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Xeres

Moderator

BeitragSa, Mai 06, 2017 9:58
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~


Wenn du mehrere Animationen unabhängig voneinander wieder geben willst, wirst du eigene Timer mit Millisecs bauen müssen.

Siehe auch: BPS #5: Seifenblasenmaschine
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

obilaner

BeitragSa, Mai 06, 2017 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Super!

Vielen dank! Irgendwie ist die CPU Auslastung aber immer noch bei 25% .. Wieso ist das so?

Xeres

Moderator

BeitragSa, Mai 06, 2017 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Code kann man darüber keine Aussage treffen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Mai 06, 2017 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
obilaner hat Folgendes geschrieben:
Super!

Vielen dank! Irgendwie ist die CPU Auslastung aber immer noch bei 25% .. Wieso ist das so?


Du hast vermutlich einen 4-Kern-Prozessor und benutzt Flip 1, wodurch der eine Kern zu 100% ausgelastet ist.

Nutze Flip 0, dann wird nicht auf VSync gewartet, was bei modernen Rechnern eben viel Prozessorauslastung bedeutet.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSa, Mai 06, 2017 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Alternativ reicht auch ein stumpfes "Delay 1" irgendwo im Mainloop um dem Prozessor Luft zum Atmen zu geben.

Wenn du Animationen hast (und auch für Bewegungen etc generell) solltest dringend du bedenken, dass du die Geschwindigkeit zwar z.B. mit Waittimer oder Flip 0 nach oben hin beschränken kannst, dass das aber nicht heißt, dass diese Geschwindigkeit auf jeder Hardware erreicht wird.

Also auf keinen Fall irgendwie Frames zählen sondern immer mit echter Zeit (z.B. MilliSecs()) arbeiten oder einen Faktor abhängig von den tatsächlichen FPS / der tatsächlichen dauer einer Mainloop-Iteration errechnen.

Wenn du das nicht tust läuft dein Spiel auf alter Hardware nicht nur ruckeliger sondern auch tatsächlich langsamer. Das sieht nicht nur doof aus sondern kann es auch unspielbar machen.
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

Midimaster

BeitragSa, Mai 06, 2017 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
25% Prozessorauslastung ist doch schon ganz gut! Grafikbefehle brauchen nun mal auch Rechenzeit. 25% bedeutet ja auch, dass der Prozessor zu 75% im Leerlauf ist. Eigentlich kein Grund das Ganze weiter zu optimieren.

Du hast Pro FLIP 16msec Zeit. Davon verbrauchst Du momentan 4msec und 12msec gehört der Prozessor wieder den anderen Programmen. Wenn Du trotzdem optimieren möchtest, beginnt jetzt der Kampf um diese 4 Millisekunden.

Wenn in deinem Spiel keine aufwändigen Animationen sind wäre ein anderer Weg, die FPS von den 60 auf 30 oder 15 Frames herunterzusetzen. Dann ändert sich die Performance auf 12% bzw. 6%. Ist aber nur bei "action"-armen Spielen sinnvoll.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Xeres

Moderator

BeitragSa, Mai 06, 2017 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
25% Prozesserauslastung können auch bedeuten, dass er eine 4-Kern CPU hat, und BB 100% eines Kerns benutzt...
Die üblichen mini-spiele hier brauchen keine 25% eine ~2,5Ghz Rechners - sollten sie jedenfalls nicht.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group