私はこれを1週間前に機能させていましたが、それから私はそれを壊してしまいました。再び動作させることはできません。2Dスプライトがいくつかありますが、それらは単なる長方形です。ローテーションは含まれません。私はそれらの間の衝突を検出する方法を探していません、私はそれを持っています、そしてそれについてそこに何千もの記事があります。私が見つけられないのは、衝突が発生したときに何をすべきかについてのリソースです。私が欲しいのは、スプライトが重ならないようにすることだけです。バウンスなどはありません。彼らはただ止まります。具体的には、今私はプレーヤーと彼が遭遇するいくつかのレベルタイルを持っています。
単純に聞こえますが、そうではありません。それは非常に正確でなければなりません。さもないと奇妙なことが起こります。私はこれを一日中修正しようとしていて、奇妙な混合結果が出ています。時々私のプレーヤーは床に引っかかって、左右に動くことができません。私がそれを修正すると、彼はブロックを左または右に歩くことができます。
したがって、私の現在の設定は次のように考えています。プレーヤーを行きたい場所に移動してみてください。次に、彼のタイルが何かと衝突するかどうかをマップに尋ねます。その場合、マップには、4つの方向のそれぞれに何ピクセルのオーバーラップがあるかが示されます。ここで注意が必要なのは、プレイヤーがこれらの数字にどのように反応するかです。彼が地面にいるとき、彼が地面にいることを知るために、床と1ピクセルのオーバーラップがあります(そうでない場合、オーバーラップがないと彼の下には何もないと思うので、彼は地面に落ちることと着地することの間で振動します)。この1ピクセルのオーバーラップは、左右のエッジも床に埋め込まれているため、移動できないことを意味します。
プレーヤー用の1つのバウンディングボックスを使用して、すべてを整理するための良い方法はありますか?彼の4つの側面のそれぞれに個別のバウンディングボックスを用意する方がよいでしょうか?