2012-12-19 72 views
1

如何在不加速或傾倒(以恆定速度)的情況下將box2d中的body球移動到排球狀態。移動box2d body球

我需要一個特殊的公式嗎?

+0

Box2d模擬重力,如果這就是你要求的。 'bodyDef.gravityScale' –

+0

但我需要身體的拋物線軌跡,是否有可能使它不受重力縮放? – Sergozh

+0

您將需要使用Box2D重力模擬。這實際上會導致你的排球加速。 – theJollySin

回答

1

在Box2D中你move an object with forces。你可以應用衝動或線性力量。

你可以申請一個衝動做:

myBody->ApplyForce(force, myBody->GetWorldCenter()); 

或者通過執行力:

myBody->ApplyForce(force, myBody->GetWorldCenter()); 

注比力,你可以構建這樣一個b2Vec:

b2Vec force = b2Vec2(0,50); 

這股力量只會推動身體。

如果你需要一個拋物線軌跡,那麼你可以創建一個具有分量x和y大於0力:

b2Vec force = b2Vec2(50,50); 

然後物理引擎將做休息。

您也可以轉到specific position,但我不建議您這樣做。

如果您想了解更多有關力量then follow this link的信息。

+0

是的,我知道,但我需要實現拋物線軌跡,使用線速度,我總是需要恆速的身體球,這就是爲什麼我不能使用衝動或力量。 – Sergozh

+0

@Sergozh你想要這個 - > http://www.iforce2d.net/b2dtut/constant-speed? –

+0

OK'b2Vec force = b2Vec2(50,50);'可能有幫助,但我需要在與玩家碰撞後移動球,並且50,50個向量不是我想要的。 – Sergozh