1

すべて。

いくつかの交差衝突を機能させようとしていますが、問題の経験は、長方形がテクスチャの修正をオーバーレイしないことです。

テクスチャは20x340ピクセルの画像です。Netテクスチャのクラス( )にはRectangle、衝突ボックス(SetCollisionBoxメソッド)として使用するaがあります。Gameクラス(メソッドの下)で以下を定義しますLoadContent()

g_Net = new Net("Net1");
g_scene.Place(g_Net, new Vector3(8, 100, 1));
g_Net.SetCollisionBox(new Rectangle((int)g_Net.Position.X, (int)g_Net.Position.Y, 20, 340));

私たちが抱えている問題は、長方形がテクスチャ(ネット)の上に描画され、高さを調整するとより整列することですが、上記のみがボールオブジェクトと衝突可能g_Ball.ballRectIntersect(g_Net.netRect)です。netRectクラスのパブリックメンバーRectangleであり、NetクラスとballRect同等であるBall

だから私の質問はRectangle、衝突がネットテクスチャ全体に対応するように、オーバーレイをテクスチャ上に適切に表示するにはどうすればよいですか?このオーバーレイを配置するためのより良い方法はありますか?

事前にどうもありがとうございました。

乾杯。

  • サム。
4

1 に答える 1

1

Textureと言って、BoundingBoxの代わりにRectangleを使用しているので、テクスチャは2Dであると想定しています。

その場合、これは答えるのが非常に簡単です。

衝突プロパティを設定するには、次のようにします。位置がテクスチャの位置であり、テクスチャがロードされたテクスチャであると仮定しましょう。

Rectangle boundingRect = new Rectangle(position.X, position.Y, position.X + texture.Width, position.Y + texture.Height);

また、ゲームが2Dゲームの場合は、強制されない限り、Vector3を使用して位置を保存しないでください。Vector2を使用してみてください。メモリを節約できます。

乾杯!

于 2012-06-29T20:39:10.943 に答える