0

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

我有一个计时器,它在我“放下”球后立即启动,我必须设置我的目标球的垂直位置。

相关功能有:

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

谢谢!

4

2 回答 2

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 的时间(可能是您的楼层!)

于 2012-12-06T11:20:58.200 回答
3

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

于 2012-12-06T11:33:27.553 回答