だから私は点が長方形の中に含まれているかどうかを見つけようとしています。長方形の高さと幅の両方が正または負の場合は正常に機能しますが、一方だけが負の場合は機能しません。幅または高さが負の長方形の全体的なアイデアは奇妙なものですが、両方が負の場合はうまく処理されているように見えました。それで、XNAがこのシナリオでcontainsメソッドをどのように処理するのか疑問に思いましたか?それが機能しない場合、この場合はそれを受け入れないだけではいけません。
私はそれを使用して、その長方形を定義するためだけにrtsスタイル選択ボックスを作成しているので、その中身がわかります。これが私のコードです:
if (InputHandler.IsLeftMouseHeld() == true)
{
selectionBoxRectangle = new Rectangle(selectionBoxRectangle.X,
selectionBoxRectangle.Y,
(int)Vector2.Transform(InputHandler.MousePosition(),
Matrix.Invert(camera.Transformation)).X - selectionBoxRectangle.X,
(int)Vector2.Transform(InputHandler.MousePosition(),
Matrix.Invert(camera.Transformation)).Y - selectionBoxRectangle.Y);
foreach(ControllableCharacter character in characters.OfType<ControllableCharacter>())
{
if (selectionBoxRectangle.Contains(character.DestRectangle.Center) == true
|| character.DestRectangle.Contains(selectionBoxRectangle))
{
character.Selected = true;
character.Color = Color.LightGreen;
}
else
{
character.Selected = false;
character.Color = Color.White;
}
}
}
この場合にどのように対処するかについてのアイデアはありますか?