Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Deklaration von zeitmarke und zeitdelta std::chrono::high_resolution_clock::time_point zeitmarke; std::chrono::high_resolution_clock::time_point zeitdelta; ... ... ... ... // zeitmarke das erste mal initialisieren zeitmarke = high_resolution_clock::now(); while(running){ // zeitdelta für einen Schleifendruchgang berechnen zeitdelta = std::chrono::high_resolution_clock::now() - zeitmarke; // zeitmarke aktualisieren zeitmarke += zeitdelta; // Simulation // Rendern } } |
Quellcode |
|
1 |
std::chrono::duration<double> timedelta = end - start; |
Quellcode |
|
1 2 3 4 |
high_resolution_clock::time_point end, start; high_resolution_clock::duration delta = end - start; //oder einfach auto delta = end - start; |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Quellcode |
|
1 |
__int64 zeitmarke = chrono::high_resolution_clock::now().time_since_epoch().count(); |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »neptun« (20.05.2018, 19:32)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
time_since_epoch liefert ganz sicher nicht die Zeit seit dem Systemstart. Sonst stünde da ja nicht "epoch".
time_since_epoch
Einen Double willst du für so einen langen Zeitraum für Nanosekunden auch gar nicht haben, wenn du mal darüber nachdenkst wie viele Stellen dieser Zahl durch einen Double schon gar nicht mehr dargestellt werden könnten. Ein int64 ist da schon ganz richtig gewählt.
Quellcode |
|
1 2 3 |
chrono::duration<double> timemark = chrono::high_resolution_clock::now().time_since_epoch(); double durationInSecounds = timemark.count(); cout << durationInSecounds << endl; |
Administrator
Administrator
Scheinbar schreibt der C++-Standard gar nicht vor, was die „Epoche“ einer Uhr ist. Das kann der 1. Januar 1970 sein oder die Systemstartzeit oder sonst irgendwas.
Werbeanzeige