我应该用deltaTime控制健康损失吗? C ++ / SDL2

时间:2016-09-03 06:52:12

标签: c++ sdl-2

我想知道使用我的程序的deltaTime是否是一个好主意(程序运行的当前时间与自上次游戏循环之后程序运行的时间之间的毫秒数变化)控制敌人的健康损失。

所以不要这样做:

...
enemy.setHealth(enemy.getHealth() - 5);
...

我这样做:

...
enemy.setHealth(enemy.getHealth() - (5 * deltaTime));
...

这个想法是在其他计算机上使健康状况下降,但是这有必要吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您必须确定适合您游戏的行为。如果你使用deltaTime作为健康损失的缩放因子,1)你必须使用浮点健康和2)如果有CPU打嗝(就像另一个程序占用CPU),所有的敌人可能会死在一个帧中。

如果你控制帧速率并假设一个恒定的时间步长,你可以确保对模拟有更多的控制。如果某些测试硬件没有达到您想要的FPS,您可以考虑增加时间步长,但可能会失去时间精度。