0

Xnaゲームスタジオを使用して小さなWindowsゲームを開発しています..

私の質問は、Ship と The Land Tile のような 2 つのオブジェクトを取得したことです...船には shiprectangle と呼ばれる長方形があり、土地には landrectangle と呼ばれる長方形があると想像してください.長方形はオブジェクトの現在の位置を表します..

土地のタイルはマップのランダムな場所に配置されています.船が土地のタイルに衝突し、船が土地を無視して別の方向に行かなければならないかどうかを知りたいだけです..

簡単に言えば、船が陸に上がるのを見たくないということです...それがアイデアです...

private void HandleLandCollition() { foreach (LandTile landtile in landtiles) { if (ship.rectangle.Intersects(landtile.rectangle)) { //Code Here } } }

4

2 に答える 2

1

基本的なバージョンは次のようになります。

Rectangle.Intersect - メソッドを介して、両方の長方形が交差する長方形を取得します。

2 つの交差する長方形の図。

これで、intersection-rectangle の値を使用して、船を陸地から遠ざけることができます。

2 つの交差する長方形の図。 1 つの長方形を別の長方形から移動する方法を示す矢印付き。

示されているケースでは、船の X 値と Y 値から幅と高さの値を差し引くだけで、船を陸地から遠ざけることができます。

于 2012-10-17T08:32:42.003 に答える
1

現実的な衝突応答を作成したい場合は、Farseer Physics ライブラリを使用する必要があります。XNA用に最適化されたBox2Dポートです。

http://farseerphysics.codeplex.com/

そうでない場合は、@vinzBad ソリューションを使用できます。

于 2012-10-17T08:44:26.097 に答える