【问题标题】:Movespeed calculation issue移动速度计算问题
【发布时间】:2012-11-20 13:01:05
【问题描述】:

这是用 C++ 编写的,我使用的是 VC++ 2010。

我正在创建一个基于图块的游戏,每个图块为 32 像素。如果给您一定的时间,并且在那段时间内您想将图像沿一个方向移动 32 个像素,我将如何计算每帧移动的量?帧速率不固定,我可以访问帧增量时间。

如果您需要更多信息,请询问。

【问题讨论】:

  • 如果你问我是否使用整数除法,那么是的。坐标都是整数。

标签: c++


【解决方案1】:

你需要计算它的基本公式是:

P 像素/S 秒 * delta T 秒/帧 = X 像素/帧

例如,我们将使用您的图块大小并在 1 秒内移动它,当前帧速率为 30 fps。

32 像素/1 秒 * .033 秒/帧 = 1.056 像素/帧

int P = 32;
double S = 1.0;
double T = getFrameTime();
double X = P / S * T;

【讨论】:

  • 你的数学有点不对劲。您应该除以S 秒,而不是相乘,否则单位会出错。
  • 你完全正确,迈克。感谢您指出了这一点。现在应该修好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多