所以我试图找出一个点是否包含在一个矩形内。当矩形的高度和宽度都是正数或负数但不是只有一个是负数时,它可以正常工作。具有负宽度或高度的矩形的整个想法有点奇怪,但当它们都是负值时,它似乎处理得很好。所以我想知道 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;
}
}
}
在这种情况下如何处理它的任何想法?