我实施了这个使用重力的游戏,但我不知道如何模拟球的重力。
我有一个计时器,在我" drop"之后立即开始。球和我必须设置我的物体球的垂直位置。
相关功能是:
int ball->setVerticalPosition(int Y);
float timer->getTime();
谢谢!
答案 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”,我只是划分并给出了最终的数字。这是“米”,例如应转换为像素。