我正在实施这个使用重力的游戏,但我不知道如何模拟球的重力.
我有一个计时器,在我"掉落"球后立即开始,我必须设置我的物体球的垂直位置.
相关功能是:
int ball->setVerticalPosition(int Y);
float timer->getTime();
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 8
好的,一般来说,你会用这个等式计算新的位置(pos_y):
t = timer->getTime();
float pos_y = pos_y0 + v_0*t - 4.9 * t *t;
ball->setVerticalPosition(pos_y);
Run Code Online (Sandbox Code Playgroud)
(v_0是初始速度,pos_y0是球的初始坐标).在你的情况下,你说你正在"丢弃"球,所以如果你移除v_0*t可能会更好.并且pos_y0是原始高度(取决于您的坐标系).
不要忘记检查pos_y = 0(你的楼层可能!)