【发布时间】:2011-02-17 07:08:52
【问题描述】:
我刚刚开始尝试用 XNA 3.1 制作一个简单的游戏来帮助自己学习 C# 和 XNA。然而,我遇到了一个有趣的问题。在所有教程中,都应该在实例化一个新的 spriteBatch 对象时传递 GraphicsDevice,如下所示:
spriteBatch = new SpriteBatch(GraphicsDevice);
甚至可以这样做:
GraphicsDevice objGraphics = new graphics.GraphicsDevice;
spriteBatch = new SpriteBatch(objGraphics);
其中 graphics 是 GraphicsDeviceManager。但是,无论我尝试哪个版本,当我尝试将 GraphicsDevice 对象传递给 spriteBatch 的构造函数时,总是会收到 ArgumentNullException。几乎我发现的每个教程都给出了第一个,只有一个提到了第二个选项。有没有其他人遇到过类似的错误或知道是什么原因造成的?我正在使用 Visual Studio 2008 在 Windows 7 x64 中工作。
编辑:
我似乎找到了问题所在。我试图在构造函数中执行该代码(这是我假设它应该去的地方)。我做了一些谷歌搜索,找到了答案here。感谢您的帮助。
【问题讨论】:
-
介意粘贴您的 Game 类的整个代码,以便我们进一步帮助您吗?
-
您在什么时候在代码中创建 spriteBatch? Xna有非常明确的初始化过程,所以你只能在初始化过程中的某些点之后使用某些对象。
标签: c# visual-studio-2008 windows-7 64-bit xna