b2Body- LinearImpulse

时间:2012-07-02 12:07:04

标签: objective-c cocos2d-iphone box2d

在我的'Bricks Breaker'游戏中,我给了b2Body(球)冲动b2Vec2(2,15)。此时机身到达屏幕上限的终点但速度太快,用户无法正常播放。    如果我给出冲动为b2Vec2(8,8),球的速度会减小,但是球不会到达顶端。

我只是想知道我应该如何减慢球的速度并且它也应该到达顶部边界?

以下是代码:

 b2Vec2 force = b2Vec2(3,15);
 b2Vec2 pos = ballBody->GetPosition();
 ballBody->ApplyLinearImpulse(force, b2Vec2(pos));

1 个答案:

答案 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