在我的'Bricks Breaker'游戏中,我给了b2Body(球)冲动b2Vec2(2,15)。此时机身到达屏幕上限的终点但速度太快,用户无法正常播放。 如果我给出冲动为b2Vec2(8,8),球的速度会减小,但是球不会到达顶端。
我只是想知道我应该如何减慢球的速度并且它也应该到达顶部边界?
以下是代码:
b2Vec2 force = b2Vec2(3,15);
b2Vec2 pos = ballBody->GetPosition();
ballBody->ApplyLinearImpulse(force, b2Vec2(pos));
答案 0 :(得分:1)
x(t) = x0 + v.x * t; (1)
y(t) = y0 + v.y * t - g * t * t; (2)
如果你需要y(t)更多,那么h - 求解(2) >= h
以找到初始垂直速度v.y。
更简单的方法:
max_h = (v.y * v.y) / (2 * g)
您现在可以找到最小v.y
。