現在、境界ボックスを使用してスプライトを立体的に見せるのに問題があります。衝突は以下のコードで正常に動作します。2D境界ボックスの衝突、壁
位置は地図上の主要な文字の位置です。 character2は、メインキャラクタが衝突する18×28スプライトの名前です。
メインキャラクタがcharacter2スプライトと衝突すると、それに応じて位置を調整しようとしましたが(EX:Position.X - = 1;)、これは交差しなくなるまでメインスプライトをスライドさせます。
私はそれが何か非常に単純だと感じていますが、私の人生のために、私はそれを理解できません。
私の質問を要約すると、どのようにしてキャラクタ2のスプライトを衝突時に立体的に見せることができますか?
また、私のメインスプライトが衝突(速度を0に減らすことによって)で停止しても、そこにはまってしまうif文が無限ループに入ります。
float x1 = Position.X;
float y1 = Position.Y;
float x2 = x1 + character2.Width;
float y2 = y1 + character2.Height;
BoundingBox b1 = new BoundingBox(new Vector3(x1, y1, 0),
new Vector3(x2, y2, 0));
BoundingBox b2 = new BoundingBox(new Vector3(Position2.X, Position2.Y, 0),
new Vector3(x2, y2, 0));
if (Collision(b1, b2))
{
// ????
}
ちょうど画面がフリーズする= X –