重力の状態でサーフェス(トランポリン)に作用するボール(円の形のダイナミックボディ)を持っています。特定の衝突角度に対するボックス2dインパルスを計算する
ボールがトランポリン(ポイントAからBに描かれている)に当たると、ボールにインパルス(トランポリンの表面に垂直)を適用したいと思います。
問題は、今私が使用することである:
それは尊重しなければならないが、(表面上)まで(図中の赤方向)に垂直なボールを送信b2Vec2 impulse = b2Vec2(0, [self fullMass]*[GameMaster sharedInstance].usrTrampolineForce);
b2Vec2 impulsePoint = _body->GetWorldPoint(b2Vec2(0/PTM_RATIO, -1.0/PTM_RATIO));
_body->ApplyLinearImpulse(impulse, impulsePoint);
特定の現実的な軌跡(黒で描かれている)。
現実的なジャンプをするためにインパルスを適用するにはどうすればよいですか?
つまり、私はボールの交差点のすべてのケースに興味があることに注意してください。例えば、ボールがトランポリン上に落ちる可能性があり、ボールは正しい軌道を有するはずである。
を現実的な軌道は赤_is_。正常に反映され、IIRC。 – brice
@brice私はポイントを作るために絵を描いています。コードを見ると、これが正しい場合は、ABエッジ(エッジとボール方向ベクトルの間の角度)に関係なく、ボールとABエッジの間のすべてのやりとりがボールを作ることになります飛び上がる、現実世界では間違っている。 – Alex
すみません。これは固いサーフェスではありませんが、衝突したときに積極的にボールに衝撃を与えたいとします。 – brice