球的重力模拟

时间:2012-12-06 11:19:11

标签: c++ game-physics

我实施了这个使用重力的游戏,但我不知道如何模拟球的重力。

我有一个计时器,在我" drop"之后立即开始。球和我必须设置我的物体球的垂直位置。

相关功能是:

int ball->setVerticalPosition(int Y);
float timer->getTime();

谢谢!

2 个答案:

答案 0 :(得分:8)

好的,一般来说,你会用这个等式计算新的位置(pos_y):

t = timer->getTime();
float pos_y = pos_y0 + v_0*t - 4.9 * t *t;
ball->setVerticalPosition(pos_y);

(v_0是初始速度,pos_y0是球的初始坐标)。在你的情况下,你说你正在“丢弃”球,所以如果你移除v_0 * t可能会更好。并且pos_y0是原始高度(取决于您的坐标系)。

别忘了检查pos_y = 0(你的楼层可能!)

答案 1 :(得分:3)

我给了4.9因为重力是9.8,等式是“1/2 * g * t * t”,我只是划分并给出了最终的数字。这是“米”,例如应转换为像素。