球的重力模拟

Gravity simulation for a ball

本文关键字:模拟      更新时间:2023-10-16

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

我有一个计时器,在我

"放下"球后立即启动,我必须设置对象球的垂直位置。

相关功能包括:

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

谢谢!

好的,一般来说,你会用这个公式计算新位置(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球的初始坐标)。在您的情况下,您说您正在"掉落"de ball,因此删除v_0 * t可能会更好。pos_y0是原始高度(取决于您的坐标系)。

不要忘记检查何时pos_y=0(可能是您的楼层!

我给了4.9,因为重力是9.8,方程是"1/2*g*t*t",我只是除以并给出了最终的数字。这是以"米"为单位,例如应该转换为像素。