Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 矩形重载方法问题_C#_Xna_Syntax Error_Intersect - Fatal编程技术网

C# 矩形重载方法问题

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) { //

所以我有一个矩形,我用它来做弹跳框。。我正在反弹这个矩形的球,所以需要能够检查它是否从矩形的x轴或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轴相交?您可能需要编写自己的方法。