0

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

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

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

GraphicsDevice.Clear(Color.Cornflowerblue);
4

1 回答 1

0

饥饿编码器:

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

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

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

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

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

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

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

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

于 2013-01-09T17:13:46.670 回答