2012-07-02 17 views
0

在我的'磚頭破碎機'遊戲中,我將衝動b2Vec2(2,15)給b2Body(球)。此時身體一直到屏幕上限結束,但速度太快,用戶無法正常播放。 如果我給衝動b2Vec2(8,8),球的速度減少,但球沒有達到頂部的結束。b2Body- LinearImpulse

我只是想讓我如何減慢球的速度,也應該達到頂界也?

下面是代碼:

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

回答

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

+0

對不起,但沒有得到你。你能解釋一下關於x,y,v和t嗎? – stack

+0

x - 水平座標,y - 垂直座標。 v - 初始速度向量。 t - time – Andrew

+0

閱讀此:http://en.wikipedia.org/wiki/Equations_of_motion#Uniform_acceleration – Andrew