【问题标题】:Monogame texture loading NullReferenceExceptionMonogame 纹理加载 NullReferenceException
【发布时间】:2012-12-17 18:49:13
【问题描述】:

我有一个工作游戏,我正在加载来自不同类的所有纹理。它适用于 PC 版本。

现在,我正在尝试使用 Monogame 将其移植到 win8。

如果我使用 .xnb 文件从 Game1.cs 加载纹理,它绝对可以正常工作。但是,当我尝试使用不同的类加载相同的纹理时,它不会。它给了我一个NullReferenceException 错误

GraphicsDevice.Clear(Color.Cornflowerblue);

【问题讨论】:

  • 你能检查一下GraphicsDevice是否为空吗?
  • 它是空的!这就是为什么我放了 NullReferenceException

标签: windows-8 xna monogame


【解决方案1】:

饥饿编码器:

我不知道你是如何从类中加载纹理的,但是,现在 MonoGame 还没有像你在为 PC 构建和 XNA 游戏中提供的内容管道(他们正在研究它),因此,您不能以相同的方式添加图形文件。

在构建 Windows 8 XNA 游戏的演练中,我从自己的 Player 类中创建了我的 Shooter 玩家图形,方法是将 Content.Load 与 Texture 类型和位置一起传递给类中的 Initialize 函数:

player.Initialize(Content.Load("Graphics\player"), playerPosition);

注意 .xnb 文件位于我项目中的 Graphics 文件夹中。

在我的背景中,我还通过将完整的内容管理器传递给我的背景类的 Initialize 方法,从我的背景类创建了一个视差背景。

bgLayer1 = new ParallaxingBackground(); bgLayer1.Initialize(Content, "Graphics\bgLayer1", GraphicsDevice.Viewport.Width, -1);

这两个示例都适用于我的项目/游戏。

如果您有兴趣已将播放器代码示例作为 Windows 8 上 MonoGame 的博客教程系列的一部分发布。当我完成背景代码时,我还将添加完整的背景代码示例。希望这可以帮助。 http://blogs.msdn.com/tarawalker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多