2011-09-25 17 views
11

私はゲームを作るためにiPhone2でbox2dを使っています。私は重力によって左右に動かないように動く体を持っています。それは別の体に当たって右または左に動いていきます。私はその後、本体をその出発点に戻すリセットボタンを持っています。唯一の問題は、まだ右または左に動いていることです。どのようにボールがすでに移動している力に対抗できますか?ゲームをリセットするときに、この左右の動きをどのように取り除くことができますか?box2dで体に作用する力を止める方法

答えて

25

box2dは自動的に各シミュレーションステップを強制的に解除します。私はあなたがリセッティング時にあなたの体の位置を変えていると思いますが、速度ではありません。あなたのリセット方法にこのコードを追加します。

body->SetLinearVelocity(b2Vec2(0,0)); 
body->SetAngularVelocity(0); 
+0

私はこの方法を試してみたが、動作しない場合、相互に2つのオブジェクトの近くhttp://stackoverflow.com/questions/39716111/cocos2dx-unable-to-設定速度-0-0 – TomSawyer

+0

@TomSawyer:ベロシティをリセットして速度が再び変化すると、おそらく衝突します。 – Andrew

+0

速度をリセットすると、1つのオブジェクトが静止していると思います。他の人と衝突することは不可能です。とにかく、1つのオブジェクトが停止していることを確認しますか? – TomSawyer

関連する問題