0

最近、Direct2D を使用して C++ で 2D プラットフォーマー エンジンを作成しようとしています。私が現在抱えている問題は、重力などの加速度がオブジェクトに適用された後、互いに静止しているオブジェクトが正しく相互作用するようにすることです。

現在、私は衝突を検出し、それらに正しく対応することができます (私は思います)。オブジェクトが衝突すると、オブジェクトは他のオブジェクトに寄りかかっていることを覚えているので、オブジェクトは他のオブジェクトによって押される可能性があります (衝突には跳ね返りがないことに注意してください。衝突すると、何か他のことが起こるまで静止することが保証されます)。シミュレーションが進むたびに、オブジェクトの加速度がその速度に適用されます (たとえば、vx += ax * t、t は最後の前進からの経過時間)。

これらの加速度が適用された後、互いに静止しているオブジェクトが対応するオブジェクトとは異なる速度で動いているかどうかを確認し (異なるオブジェクトは異なる加速度を持つ可能性があるため)、その違いに応じて 2 つのオブジェクトのリンクを解除して、より長く静止するか、速度を均等にして、再び同じ速度で移動します。多くの静止オブジェクトでこれを実行できるアルゴリズムの作成に問題があります。

これは私の問題を説明するのに役立つ図です

http://i.imgur.com/cYYsWdE.png

4

0 に答える 0