【发布时间】:2014-05-04 06:54:02
【问题描述】:
我想在我的 SFML 循环中实现增量计时,以补偿选择运行我的应用程序的其他计算机,现在我只有
float delta = .06
放置在我的循环之前,但正如维基百科描述的增量时间:
这是通过每秒每帧调用一个计时器来完成的 现在和最后一次通话之间的时间,以毫秒为单位。[2]此后 结果数字(Delta Time)用于计算快多少 例如,游戏角色必须移动以弥补 首先引起的滞后峰值。[3]
这是我目前正在做的错误,我似乎无法将逻辑转换为语法:
bool running=true; //set up bool to run SFML loop
double lastTime = clock.getElapsedTime().asSeconds();
sf::Clock clock; //clock for delta and controls
while( running )
{
clock.restart();
double time= clock.getElapsedTime().asSeconds();
double delta = time - lastTime; //not working... values are near 0.0001
time = lastTime;
//rest of loop
【问题讨论】:
-
您在将经过的时间保存到变量之前重新启动时钟。
标签: c++ sfml game-loop timedelta