类型为';的未处理异常;System.NullReferenceException';对于XNA游戏

类型为';的未处理异常;System.NullReferenceException';对于XNA游戏,xna,Xna,我一直收到这样的信息: 以下代码上的类型为“System.NullReferenceException”的未处理异常: if (position.X >= p.position.X && position.X != p.position.X) position.X -= Yspeed; if (position.X >= p.position.X && position.X != p.positi

我一直收到这样的信息:

以下代码上的类型为“System.NullReferenceException”的未处理异常:

        if (position.X >= p.position.X && position.X != p.position.X)
            position.X -= Yspeed;
        if (position.X >= p.position.X && position.X != p.position.X)
            position.X += Yspeed;
        position.Y = position.Y + Yspeed;

具体指第一行。我要做的是把敌人移向玩家

您正在访问空引用的字段或方法:

MyType instance = null;

// Throws a NullReferenceException because instance is 
// not an actual object but null.
instance.Name = "foo";

所以我假设
位置
或者更确切地说
p
是未设置的。如果您使用的是像Visual Studio这样的IDE,请使用断点检查变量并检查它们是否确实包含某些内容。

如果位置是矢量2,则必须是p。结构总是初始化为默认值。是的,但是我们实际上看不到
位置的声明,也看不到类型定义。它也可以是一门课。但我相当肯定你是对的。