#include <iostream>
#include <ctime>
unsigned int GetActualTime()
{
return (unsigned int)(((float)clock())/CLOCKS_PER_SEC*1000.f);
}
int main()
{
float ThisDelta = 0.f;
unsigned int LastTick = GetActualTime();
float SomeObjectPosition = 0.f;
float SomeObjectSpeed = 2.f; // Speed of the object, in Units per second.
while(SomeObjectPosition <= 8.f)
{
unsigned int ThisTick = GetActualTime();
if(ThisTick != LastTick)
{
ThisDelta = ((float)(ThisTick - LastTick))*0.001f;
LastTick = ThisTick;
// At this point, we have a delta time.
// The delta time is the time, in MS, between the last frame and this frame.
SomeObjectPosition += ThisDelta * SomeObjectSpeed;
std::cout << SomeObjectPosition << std::endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CiAKdW5zaWduZWQgaW50IEdldEFjdHVhbFRpbWUoKQp7CiAgICByZXR1cm4gKHVuc2lnbmVkIGludCkoKChmbG9hdCljbG9jaygpKS9DTE9DS1NfUEVSX1NFQyoxMDAwLmYpOwp9CiAKaW50IG1haW4oKQp7CiAgICBmbG9hdCBUaGlzRGVsdGEgPSAwLmY7CiAgICB1bnNpZ25lZCBpbnQgTGFzdFRpY2sgPSBHZXRBY3R1YWxUaW1lKCk7CiAgICBmbG9hdCBTb21lT2JqZWN0UG9zaXRpb24gPSAwLmY7CiAgICBmbG9hdCBTb21lT2JqZWN0U3BlZWQgPSAyLmY7IC8vIFNwZWVkIG9mIHRoZSBvYmplY3QsIGluIFVuaXRzIHBlciBzZWNvbmQuCiAgICB3aGlsZShTb21lT2JqZWN0UG9zaXRpb24gPD0gOC5mKQogICAgewogICAgICAgIHVuc2lnbmVkIGludCBUaGlzVGljayA9IEdldEFjdHVhbFRpbWUoKTsKICAgICAgICBpZihUaGlzVGljayAhPSBMYXN0VGljaykKICAgICAgICB7CiAgICAgICAgICAgIFRoaXNEZWx0YSA9ICgoZmxvYXQpKFRoaXNUaWNrIC0gTGFzdFRpY2spKSowLjAwMWY7CiAgICAgICAgICAgIExhc3RUaWNrID0gVGhpc1RpY2s7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgZGVsdGEgdGltZS4KICAgICAgICAgICAgLy8gVGhlIGRlbHRhIHRpbWUgaXMgdGhlIHRpbWUsIGluIE1TLCBiZXR3ZWVuIHRoZSBsYXN0IGZyYW1lIGFuZCB0aGlzIGZyYW1lLgogICAgCiAgICAgICAgICAgIFNvbWVPYmplY3RQb3NpdGlvbiArPSBUaGlzRGVsdGEgKiBTb21lT2JqZWN0U3BlZWQ7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBTb21lT2JqZWN0UG9zaXRpb24gPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9