KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: C: FPS auf 30 Festlegen?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Community,

ich arbeite zur Zeit an einer 2D Engine (in C) für mein Spiel und vielleicht Zukünftige, bleib aber hängen. Ich würde mein Spiel gerne auf 30 FPS begrenzen und in meiner Engine einmal 30 und 60 FPS Begrenzung haben. Da ich noch nie was in die Richtung gemacht hab kenne ich mich auch nicht aus. FPS ausgeben klappt schon mal und vom Logischen her wüsste ich auch ungefähr wie ich das machen müsste.

Also ich hab mir das so gedacht ich messe die Zeit die es brauch um ein Bild auszugeben und nehme das dann minus 2 ms. und dann halte ich die while solang an wie die Differenz der beiden Zahlen ist.

Naja ich finde meine Lösung ist vielleicht zu umständlich oder sogar Falsch deswegen möchte ich mal ein paar fachmännische Lösungen wissen Big Grin

Vor allem die Umsetzung im Code wär mir Wichtig. Nein nicht wegen Copy & Paste sondern weil ich mich allgemein mit der Verwendung mit Zeit in C (die ich wahrscheinlich brauchen werde oder auch nicht ich hab halt keine Ahnung) nicht so auseinander gesetzt habe. Nehmt es also auch nicht so dick wenn ich hier Misst geschrieben hab.

Ich werde eure Code eh nicht zu 100% übernehmen ihr müsst mir auch keine alles Lösung posten mir reichen kleine Tipps Wink


Schon mal Danke Smile

Natürlich für PSP ^^
sceDisplayWaitVblankStart();

konstante 60fp/s


ansonsten, müsstest du dir die Engine selber schreiben.
Frames/Sekunden davon der Durchschnittswert
Warum willst Du ein Spiel limitieren?

So wie DoubleDD schon geschrieben hat, liefert sceDisplayWaitVblankStart() 60 FPS, wenn Du es zweimal aufrufst, bist Du bei 30.

Mach es doch so:

Code:
sceDisplayWaitVblankStart();
if (limitto30fps == 1) sceDisplayWaitVblankStart();


Wink

wurzelbums :
Warum willst Du ein Spiel limitieren?

So wie DoubleDD schon geschrieben hat, liefert sceDisplayWaitVblankStart() 60 FPS, wenn Du es zweimal aufrufst, bist Du bei 30.

Mach es doch so:

Code:
sceDisplayWaitVblankStart();
if (limitto30fps == 1) sceDisplayWaitVblankStart();


Wink


Ah ok ich wollte es selbst machen aber wusste auch noch net das sceDisplayWaitVblankStart(); es auf konstante 60 fps hält. Da sieht man mal das ich mich mehr mit befassen sollte. Ok danke euch beiden Big Grin

Referenz-URLs