C# 矩形重载方法问题
所以我有一个矩形,我用它来做弹跳框。。我正在反弹这个矩形的球,所以需要能够检查它是否从矩形的x轴或y轴反弹。最初,我有以下代码,用于检测两个物体碰撞:C# 矩形重载方法问题,c#,xna,syntax-error,intersect,C#,Xna,Syntax Error,Intersect,所以我有一个矩形,我用它来做弹跳框。。我正在反弹这个矩形的球,所以需要能够检查它是否从矩形的x轴或y轴反弹。最初,我有以下代码,用于检测两个物体碰撞: if (ballRect.Intersects(boxRect) { } 但是现在我想改变它,这样我就可以根据矩形的轴执行不同的操作,所以我尝试了这个 if (ballRect.Intersects(boxRect.X) { //perform action } if (ballRect.Intersects(boxRect.Y) { //
if (ballRect.Intersects(boxRect)
{
}
但是现在我想改变它,这样我就可以根据矩形的轴执行不同的操作,所以我尝试了这个
if (ballRect.Intersects(boxRect.X)
{
//perform action
}
if (ballRect.Intersects(boxRect.Y)
{
//perform different action
}
显然,可以使用.X和.Y值,因为在我键入代码时visual studio会自动显示它们,但是在输入它们之后,我会出现以下错误:
匹配的最佳重载方法
'Microsoft.Xna.Framework.Rectangle.Intersects(Microsoft.Xna.Framework.Rectangle)'
有一些无效的参数
为什么会这样
编辑:
很明显,我使用的原型是不正确的,有没有人知道我该如何检测矩形是否与X轴或Y轴相交
谢谢。原型是:
Rectangle.Intersects(Rectangle rect)
但您试图将其输入一个整数,而不是矩形。原型是:
Rectangle.Intersects(Rectangle rect)
但您试图将其输入一个整数,而不是矩形。原型是:
Rectangle.Intersects(Rectangle rect)
但您试图将其输入一个整数,而不是矩形。原型是:
Rectangle.Intersects(Rectangle rect)
但是您试图为它提供一个整数,而不是一个矩形。您需要为此创建一个方法。我通常为需要扩展的每种类型创建一个扩展类。就你的情况而言,应该是这样的:
public static class RectangleExtensions
{
public static bool IntersectsOnX(this Rectangle rect, int xPoint)
{
return rect.Left <= xPoint && xPoint <= rect.Right;
}
public static bool IntersectsOnY(this Rectangle rect, int yPoint)
{
return rect.Top <= yPoint && yPoint <= rect.Bottom;
}
}
公共静态类矩形扩展
{
公共静态bool IntersectsOnX(此矩形rect,int xPoint)
{
return rect.Left您需要为此创建一个方法。我通常为需要扩展的每种类型创建一个扩展类。对于您的情况,它类似于:
public static class RectangleExtensions
{
public static bool IntersectsOnX(this Rectangle rect, int xPoint)
{
return rect.Left <= xPoint && xPoint <= rect.Right;
}
public static bool IntersectsOnY(this Rectangle rect, int yPoint)
{
return rect.Top <= yPoint && yPoint <= rect.Bottom;
}
}
公共静态类矩形扩展
{
公共静态bool IntersectsOnX(此矩形rect,int xPoint)
{
return rect.Left您需要为此创建一个方法。我通常为需要扩展的每种类型创建一个扩展类。对于您的情况,它类似于:
public static class RectangleExtensions
{
public static bool IntersectsOnX(this Rectangle rect, int xPoint)
{
return rect.Left <= xPoint && xPoint <= rect.Right;
}
public static bool IntersectsOnY(this Rectangle rect, int yPoint)
{
return rect.Top <= yPoint && yPoint <= rect.Bottom;
}
}
公共静态类矩形扩展
{
公共静态bool IntersectsOnX(此矩形rect,int xPoint)
{
return rect.Left您需要为此创建一个方法。我通常为需要扩展的每种类型创建一个扩展类。对于您的情况,它类似于:
public static class RectangleExtensions
{
public static bool IntersectsOnX(this Rectangle rect, int xPoint)
{
return rect.Left <= xPoint && xPoint <= rect.Right;
}
public static bool IntersectsOnY(this Rectangle rect, int yPoint)
{
return rect.Top <= yPoint && yPoint <= rect.Bottom;
}
}
公共静态类矩形扩展
{
公共静态bool IntersectsOnX(此矩形rect,int xPoint)
{
return rect.Left该方法仅接受矩形作为参数。如果要检查坐标,可能需要Rectangle.Contains()
该方法仅接受矩形作为参数。如果要检查坐标,可能需要Rectangle.Contains()
该方法仅接受矩形作为参数。如果要检查坐标,可能需要Rectangle.Contains()
该方法仅接受矩形作为参数。如果要检查坐标,可能需要Rectangle.Contains()
Ahh好的。我该如何检测矩形是否与X轴或Y轴相交?您可能需要编写自己的方法。Ahh好的。我该如何检测矩形是否与X轴或Y轴相交?您可能需要编写自己的方法。Ahh好的。我该如何检测矩形是否与X轴或Y轴相交矩形是否与X轴或Y轴相交?您可能需要编写自己的方法。啊,好的。那么我将如何检测矩形是否与X轴或Y轴相交?您可能需要编写自己的方法。