我刚开始尝试用XNA 3.1做一个简单的游戏来帮助自己学习C#和XNA。然而,我遇到了一个有趣的问题。在所有的教程,都应该实例化一个新的spriteBatch对象这样的时候该传球的GraphicsDevice:GraphicsDevice在我的XNA Windows游戏项目中为null
spriteBatch = new SpriteBatch(GraphicsDevice);
一个甚至可能做到这一点:
GraphicsDevice objGraphics = new graphics.GraphicsDevice;
spriteBatch = new SpriteBatch(objGraphics);
,其中显卡是GraphicsDeviceManager。然而,无论我尝试使用哪个版本,当我尝试将GraphicsDevice对象传递给spriteBatch的构造函数时,总会得到一个ArgumentNullException。我发现几乎每个教程都提供了第一个,只有一个提到了第二个选项。是否有其他人遇到类似的错误或知道可能导致这种情况?我在Windows 7 64位与Visual Studio 2008年的工作
编辑:
我似乎已经发现了这个问题。我试图在构造函数中执行该代码(这是我认为它应该去的地方)。我做了一些谷歌搜索,并找到了答案here。谢谢您的帮助。
记住粘贴您Game类的整个代码,以便我们可以进一步帮助您? – mauris 2010-05-09 03:33:05
在什么时候在代码中创建spriteBatch? Xna具有非常明确的初始化过程,因此您只能在初始化过程中的某些点之后使用某些对象。 – 2010-05-09 03:33:48