<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[FPS - FramesPerSeconds]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wollte gerne wissen wie ich, am bessten mit den Standard Bibliotheken, die <strong>FramesPerSeconds</strong> in meinem Programm schreiben kann.</p>
<p>(Da ich ein Spiel programmiere passt das zwar eigentlich nicht sogut hier rein, aber es geht mir schließlich nicht um Grafik oder der Gleichen sondern um etwas, was man in C++ allgemein können sollte - 'hoff ich jeden Falls ^^')</p>
<p>Falls dies nicht über die Standard Bibliotheken laufen sollte vielleicht über <em>Win32</em> oder <em>Linux</em>?! (möchte das Programm für beide Systeme lauffähig machen)</p>
<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185719/fps-framesperseconds</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 05:36:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185719.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jun 2007 12:04:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:04:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wollte gerne wissen wie ich, am bessten mit den Standard Bibliotheken, die <strong>FramesPerSeconds</strong> in meinem Programm schreiben kann.</p>
<p>(Da ich ein Spiel programmiere passt das zwar eigentlich nicht sogut hier rein, aber es geht mir schließlich nicht um Grafik oder der Gleichen sondern um etwas, was man in C++ allgemein können sollte - 'hoff ich jeden Falls ^^')</p>
<p>Falls dies nicht über die Standard Bibliotheken laufen sollte vielleicht über <em>Win32</em> oder <em>Linux</em>?! (möchte das Programm für beide Systeme lauffähig machen)</p>
<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315575</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:20:47 GMT]]></title><description><![CDATA[<p>Wieso sollte das allgemein sein? Niemand braucht fps, außer Shooterprogrammierern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Du kannst das mit <a href="http://www.cplusplus.com/reference/clibrary/ctime/clock.html" rel="nofollow">clock</a> bewerkstelligen:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;

int main ()
{
   std::clock_t letztes_mal;

   double fps = 0.;

   for (;;)
   {
       // blubb, dein Code für Grafik und sonstigen &quot;pro-frame&quot; Kram
       fps = CLOCKS_PER_SEC / static_cast&lt;double&gt; (std::clock () - letztes_mal);
       letztes_mal = std::clock ();
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315582</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:23:29 GMT]]></title><description><![CDATA[<ol>
<li>
<p>falsches forum, registrieren und @spiele entwicklung forum schreiben.</p>
</li>
<li>
<p>das ist jetzt nur pseudocode aber so in etwa geht das (sehr vereinfachte form)</p>
</li>
</ol>
<p>was man dafür braucht ist ein timer (mit genug auflösung)<br />
platform unabhängig gibts sowas zb mit SDL</p>
<pre><code class="language-cpp">void GameLoop()
{
static float numSamples = 0;
static float FPS = 0.0f; 

...

int before = getTime();
DrawFrame();
int after = getTime();

//getTime sollte millisec zurückgeben daher 1000 durch
float renderTime = 1000 / static_cast&lt;float&gt;(after - before); //one sample

++numSamples;
FPS = (FPS + renderTime) / numSamples;

...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315589</guid><dc:creator><![CDATA[inp]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:24:25 GMT]]></title><description><![CDATA[<p>&quot;Okay, du hast Recht das war blöd eingeordnet :p &quot;</p>
<p>Und der Code ist auch wirklich sicher, also ich meine nicht dass das Programm dann sau langsam wird oder das es mal schneller und mal deutlich langsamer läuft??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315590</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:27:57 GMT]]></title><description><![CDATA[<p>Achso, Momentmal, die beiden Codes fragen erst mal nur die FPS ab</p>
<p>Wie aber kann ich sie selbst einstellen damit mein Programm nicht zu schnell wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315591</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 12:41:14 GMT]]></title><description><![CDATA[<p>Indem du am Ende der Anzeigeschleife so lange wartest, bis die erforderliche Framezeit abgelaufen ist:</p>
<pre><code class="language-cpp">int frametime=timescale/*Auflösung deiner Timer-Funktion*/ / fps;
for(;;)
{
  int loopstart=getTime();
  ...
  while(getTime()&lt;loopstart+frametime);//warte bis Frame-Ende
}
</code></pre>
<p>Je nach System kannst du auch per SetTimer() einen Timer loslaufen lassen, der alle 1000/fps Millisekunden aktiv wird - und bei jeder Timer-Aktivierung dann einen neuen Frame zeichnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315602</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 30 Jun 2007 12:41:14 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 13:08:09 GMT]]></title><description><![CDATA[<p>da gibts verschiedene modelle,<br />
was ich raten würde wäre die entkopplung von game logic ticks (UPS) und rendering ticks (FPS).</p>
<p>und auch dafür gibt es verschiedene arten es zu implementieren.</p>
<p>so in etwa könnte es aussehen.</p>
<pre><code class="language-cpp">void GameUpdate(double time /*seit dem letzten frame*/)
{
 // objekte anhand des zeitfensters in der welt modifizieren

 IDuckSoldier* pDuck = GetDuckSoldier();
 pDuck-&gt;translate(pDuck-&gt;getXTrans() * time, pDuck-&gt;getYTrans() * time);

 ...
}

void DrawFrame()
{
 // objekte zeichnen
 IScreen* pScreen = GetScreen();

 IDuckSoldier* pDuck = GetDuckSoldier();
 pDuck-&gt;draw(pScreen);
}

void GameLoop()
{
 static unsigned int desUPS = 25; // so oft soll das spielgeschehen upgedated werden

 int lastUpdate = getTime();
 while(gameRunning) 
 {
  //input handling
  ...
  //network handling
  ...

  //game update
  int curTime = getTime() - lastUpdate;

  if (curTime &gt; 1000 / 25) //nur 25mal pro sekunde updaten
  {
   GameUpdate(static_cast&lt;float&gt;(curTime));
   lastUpdate = getTime();
  }

  //rendering
  DrawFrame();  //so oft wie möglich zeichnen

  //statistics
  ...

  sleep(1); // bisserl schlafen damit andere threads auch zum zug kommen
 }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315622</guid><dc:creator><![CDATA[inp]]></dc:creator><pubDate>Sat, 30 Jun 2007 13:08:09 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 13:20:40 GMT]]></title><description><![CDATA[<p>man kann doch auch eine fps Funktion anlegen</p>
<pre><code class="language-cpp">int main(void){
    //...
    int fps;
    //...
    while(true){
        fps = getFPS();
        //...
        drawScene();
        //...
    }
    return 0;
}

int getFPS(){
    static double alt = 1,neu = 1;
    alt = neu;
    neu = getTime(); //(in Sekunden)
    return (int)(1./(neu - alt))
}
</code></pre>
<p>aber mache es, wie du meinst, dass es am wenigsten übersicht zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315634</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sat, 30 Jun 2007 13:20:40 GMT</pubDate></item><item><title><![CDATA[Reply to FPS - FramesPerSeconds on Sat, 30 Jun 2007 14:37:08 GMT]]></title><description><![CDATA[<p>Alles klar. Ich hab jetzt verstanden wie es funktioniert.</p>
<p>Danke an alle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315679</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 30 Jun 2007 14:37:08 GMT</pubDate></item></channel></rss>