2011-08-25 23 views
0

だから、プレイヤーとタイルの衝突をチェックしたいと思います。タイルは1つの大きなオブジェクトではありませんが、タイルは32 * 32ピクセルのサイズで、そのうちの11個が床のように使用されるため、プレーヤーはその上を歩くことができます。 私の質問は、どうすればそれを検出するのですか? Pixel Collisionは効果的ではありません。 矩形の衝突を使用する必要がある場合は、コードに実装する方法を説明したいと思います。プレイヤーとタイルの衝突検出(バックグラウンド)。 XNA

ありがとう。

+0

ここには、衝突検出と衝突応答の2つの問題があります。衝突の検出に関しては、矩形から矩形の衝突検出に関するgoogleには数百、数百の記事があります。衝突が検出されたら、どのようにそれに応答したいですか? 1つの一般的な方法は、何かに衝突していない最後の場所にプレーヤーを戻すことです。 – MattDavey

+0

[重複の可能性のある重複の検出](http://stackoverflow.com/questions/7178522/collision-detection --with-tiles) –

+3

これまでに尋ねたことは、あなたがコメントを与えられた答えが気に入らず、あなたの質問を言い換えればわかりやすいので、新しい質問を作成すべきではありません。 –

答えて

1

Microsoftが開発したPlatformer Starter Kitをダウンロードして学習することをお勧めします。

ダウンロード:Starter Kit Download

MSDNディスカッションStarter Kit Discussion

その解決のための最も簡単な説明は、タイルは、世界を代表する2次元配列に保管されていることです。プレーヤーのUpdate()関数が呼び出されると、HandleCollisions()関数が呼び出され、タイル配列のサブセットをループして衝突の可能性を探します。プレーヤーとの境界線とタイルとの交差点の可能性のある衝突ごとに、プレーヤーの位置が調整されてタイルから取り出されます。