XNA空参考例外

时间:2014-07-18 02:49:30

标签: c# xna nullreferenceexception

我正在制作的游戏中一切正常,但现在我开始在我的一些代码上出现NullReferenceException错误。

这里我定义了一个Vector2和一个Texture2D:

Vector2 startButtonPosition;
Texture2D startButton;

然后在Initialise()方法中:

startButtonPosition = new Vector2((graphics.GraphicsDevice.Viewport.Width - startButton.Width) / 2, 150); 

当我运行它时,我在startButtonPosition初始化时得到NullReferenceException错误,说明对象引用未设置为对象的实例。但它确实如此。

2 个答案:

答案 0 :(得分:0)

graphicsstartButton或您正在使用的其中一个属性设置为null。

您可以在抛出异常时将鼠标悬停在变量上进行检查(点击中断

请记住,因为您将startButton声明为变量,并不意味着将其设置为值。你需要初始化它。 (例如:startButton = Content.Load<Texture2D...

答案 1 :(得分:0)

您提供的代码是尝试初始化&#39; startButtonPosition&#39;使用&#39; startButton&#39;。问题是,你永远不会初始化&#39; startButton&#39;因此它是&#39; null&#39;。

@ Pierre-Luc Pineault建议What is a NullReferenceException and how do I fix it?

是正确的

这是一个初始化&#39; startButton&#39;的链接。 Texture2D Constructor

我还没有使用过Texture2D,但是我假设它看起来像这样:

Texture2D startButton = new Texture2D(graphics.GraphicsDevice, width, height);