Aktuelle Zeit: 22.12.2024, 09:28

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 02.11.2007, 12:54 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Also:
Unter Windows gibt es "Sleep(x)", dabei ist x in Millisekunden, in "windows.h"
Unter *nix gibt es "sleep(x)", x in Sekunden, und "usleep(x)", x in Mikrosekunden, afaik in der "unistd.h"

Mein Code für Zeitmessung sieht so aus:

Deklaration etc.:
Code:
#if defined(_MSC_VER) || defined(_WINDOWS_)
   #include <time.h>
   #if !defined(_WINSOCK2API_) && !defined(_WINSOCKAPI_)
         struct timeval
         {
            long tv_sec;
            long tv_usec;
         };
   #endif
#else
   #include <sys/time.h>
#endif
#if defined(_MSC_VER) || defined(_WINDOWS_)
   int gettimeofday(struct timeval* tv, void *timezone)
   {
      union {
         long long ns100;
         FILETIME ft;
      } now;
     
      GetSystemTimeAsFileTime (&now.ft);
      tv->tv_usec = (long) ((now.ns100 / 10LL) % 1000000LL);
      tv->tv_sec = (long) ((now.ns100 - 116444736000000000LL) / 10000000LL);
     return (0);
   }
#endif


Zeitmessung:
Code:
timeval lastframe;
gettimeofday(&lastframe, 0);
[...]
// In jedem Frame:
timeval currtime;
gettimeofday(&currtime, 0);
float frametime = currtime.tv_usec - lastframe.tv_usec;
if (frametime < 0) frametime += 1000000;
frametime /= 1000;
lastframe = currtime;

Danach enthält frametime die benötigte Zeit in Millisekunden (als Float, d.h. evtl auf Mikrosekunden genau)

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 02.11.2007, 14:52 
Offline
Moderator

Registriert: 26.03.2007, 20:06
Beiträge: 114
Wobei man damit ziemlich vorsichtig sein muss, da Windows nicht garantiert, das die zeit genau eingehalten wird, besonders bei Sleepzeit <=10, da kann es passieren, das Win großzügig auf 10 aufrundet. Also wenn der Sleep nicht unbedingt erforderlich ist und sehr kleine Zeiten zu überbrücken sind, sollte man das Sleep weglassen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 02.11.2007, 23:47 
Offline

Registriert: 27.05.2007, 17:07
Beiträge: 11
Wohnort: Wipperfürth
Welche Framerate ist denn empfehlenswert?

_________________
Der Geist ist ein Schwert, dessen Gebrauch das Vorhandensein von Respekt, Verstand und Demut voraussetzt.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 03.11.2007, 04:39 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
60 bis 70 denk ich solaufen jeden falls fast alle mein games und apps

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 03.11.2007, 07:36 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
guck dir mal das hier an: http://www.willemer.de/informatik/cpp/timelib.htm
hab aber grad selbst keine ahnung ob da int oder was andres zurück kommt


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 03.11.2007, 17:48 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Zitat:
60 bis 70 denk ich solaufen jeden falls fast alle mein games und apps

wimni lief Earth 2150 Lost Souls konstant bei 25 Frames/s, ohne dass man irgendeinen Unterschied zu anderen Spielen gemerkt hat, ich denke, es kommt sehr stark auf das Spiel selbst an...

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: RPG programmieren
BeitragVerfasst: 04.11.2007, 16:17 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Als framerate ist alles über 25 empfehlenswert (alles unter 20 nimmt dein gehirn als ruckeln war).
Je höher die rate, desto flüssiger laufen animationen ab.
Es ist jedoch sinnlos mehr als 70 Bilder die Sekunde zu rendern, wenn dein Monitor eine refreshrate von 70Hz hat. Außer natürlich du benutzt wirklich jeden Frame für irgendwelche Berechnungen der Physik.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de