mnu*_*zzo 3 c# 64-bit xna visual-studio-2008 windows-7
我刚刚开始尝试使用 XNA 3.1 制作一个简单的游戏来帮助自己学习 C# 和 XNA。然而,我遇到了一个有趣的问题。在所有教程中,在实例化新的 spriteBatch 对象时都应该传递 GraphicsDevice,如下所示:
spriteBatch = new SpriteBatch(GraphicsDevice);
Run Code Online (Sandbox Code Playgroud)
人们甚至可以这样做:
GraphicsDevice objGraphics = new graphics.GraphicsDevice;
spriteBatch = new SpriteBatch(objGraphics);
Run Code Online (Sandbox Code Playgroud)
其中,graphics 是 GraphicsDeviceManager。但是,无论我尝试哪个版本,当我尝试将 GraphicsDevice 对象传递给 spriteBatch 的构造函数时,我总是会收到 ArgumentNullException。我发现的几乎每个教程都给出了第一个选项,只有一个提到了第二个选项。有其他人遇到过类似的错误或知道可能导致此错误的原因吗?我正在 Windows 7 x64 和 Visual Studio 2008 中工作。
编辑:
我好像发现问题了。我试图在构造函数中执行该代码(这是我认为它应该去的地方)。我做了一些谷歌搜索并在这里找到了答案。谢谢您的帮助。
为了完整起见,我将答案放在这里。
代码
spriteBatch = new SpriteBatch(GraphicsDevice);
Run Code Online (Sandbox Code Playgroud)
只能在Game类的LoadContent()方法中执行。我将其放入构造函数中,此时尚未根据此问题的答案之一定义 GraphicsDevice 对象。
归档时间: |
|
查看次数: |
10302 次 |
最近记录: |