500 000 fps ?

BDG

Aktives Mitglied
Hey leute.

In meine while scleife wo ich immer die berechnungen und so mache, habe ich mal das Thread.sleep(10);
eingetragen ^^
Und dann ist mein fps Counter auf 500 tausend hoch ^^
Und der Computer wurde laut wie ein Traktor...
Sind viel fps nicht eigentlich gut ? Und ich dachte die maximalgrenze von fps liegt bei ca. 100..

Das ganze vorhaben habe ich überhaupt ers gemacht, weil mir mein Spiel komisch vorkam...
Das sah wenn er sich springt und bewegt so aus, als wenn es manchmal langsamer geht, manchmal schneller... Das da so ungleichheiten sind...
Die will ich aber auf garkeinen Fall haben ^^

Woran kann das also liegen ?
 

BDG

Aktives Mitglied
Und angenommen ich mache mein Thread.sleep von 10 auf 5. Und ich halbiere alle Werte die gerechnet werden...
Dann whäre mein Spiel doch doppelt so schnell und hätte viel höhere fps !
Das wäre doch gut, oder nicht?
 

Bile Demon

Bekanntes Mitglied
Nein, 500.000 fps reicht leider nicht. Erst ab 1.000.000 fps läuft ein Spiel wirklich richtig flüssig.

Mal davon abgesehen, dass ich auch heutigen Grafikkarten so hohe Bildwiederholraten nicht zutraue, was willst du mit einer Framerate jenseits der 100? Das menschliche Auge kann sowas doch schon gar nicht mehr wahrnehmen.

Insofern, nein, wenn dein Rechner komplett am Limit läuft, nur damit dein Spiel auf wahnwitzig hohe Frameraten kommt, dann ist das eher nicht gut. Thread.sleep ist da durchaus sinnvoll, um das Spiel auf normale Werte zu bremsen.
 
G

Gast2

Gast
500.000 FPS würde bedeuten dass du alle 0,002 Millisekunden neuzeichnest, das ist doch total unrealistisch... Poste doch mal deinen Code mit dem du das feststellst, am besten als KSKB.

Und angenommen ich mache mein Thread.sleep von 10 auf 5. Und ich halbiere alle Werte die gerechnet werden...
Dann whäre mein Spiel doch doppelt so schnell und hätte viel höhere fps !
Die FPS haben (wenn mans richtig gemacht hat) rein gar nichts mit der Spielgeschwindigkeit zu tun, das sollte aber auch in Quaxlis Tutorial so erklärt worden sein.
 
S

SlaterB

Gast
Die FPS haben (wenn mans richtig gemacht hat) rein gar nichts mit der Spielgeschwindigkeit zu tun, das sollte aber auch in Quaxlis Tutorial so erklärt worden sein.
ähh, was denn sonst in einfachen Java-Programmen?
jedes Frame soll doch ein unterschiedlich gepaintetes Bild sein,
wie soll das erreicht werden wenn nicht mit einer Schleife + repaint()?

man kann natürlich auf komplizierte Weise das Spiel etwas unabhängig davon in einer zweiten Schleife mit zweiten sleep ablaufen lassen,
aber wo ist das bittte je zu sehen, wie gesagt in einfachen Programmen?

im immer wieder bemühten Quaxli Tutorial steht im Text nicht allzu viel zu FPS, im Code sehe ich natürlich nur eine Schleife,
mit sleep, und die berechnet natürlich auch FPS, um die 100 (zumindest im Screenshot im PDF) bei 10ms sleep, das passt

Java:
public void run() {

        while(frame.isVisible()){

            computeDelta(); // FPS
            
            if(isStarted()){
                checkKeys();
                doLogic();
                moveObjects();
          cloneVectors();           
            }
            
            repaint();
            
          try {
                Thread.sleep(10);
            } catch (InterruptedException e) {} 

        }
        
    }

nur die Zeit zwischen 2 Zeichnungen anzuschauen und dann hochzurechnen ist allerdings ziemlich mau,
wenn das zwischen 5 und 10 ms schwankt (sleep + Zeitmessung ist zusammen nicht gerade konstant im kleinen Bereich) dann schwankt FPS entsprechend auch,

lieber eine Sekunde die Durchgänge zählen,
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
EikeB wollte wohl auf genau das hinaus, was du gepostet hast (computeDelta) : Das Spiel kann 10000 Schritte pro sekunde machen, und demnach wird auch 10000 mal pro Sekunde "repaint" aufgerufen. Aber Swing wird das ganze "etwas lockerer sehen" und vermutlich nicht mehr als 60mal wirklich neu zeichnen (Dinge wie Active Rendering mal außen vor gelassen - ich glaube, das wird bei Quaxli nicht verwendet, oder?)
 
S

SlaterB

Gast
umso mehr hätte FPS hier dann mit der Spielgeschwindigkeit, eben mit dem sleep zu tun ;)

ok, computeDelta zur Spielgeschwindigkeit, repaint evtl. davon unabhängig, das könnte eine sinnhafte Interpretation sein
 
Zuletzt bearbeitet von einem Moderator:

Oben