C#MonoGame帮助?(Content.Load<;Texture2D>;(“入侵者”);)

本文关键字:入侵者 gt Texture2D lt 帮助 Content Load C#MonoGame | 更新日期: 2023-09-27 18:25:29

我正在MonoGame中使用Open GL制作一个太空入侵者游戏,我正在尝试加载我添加到Content文件夹中的纹理(它是一个名为"入侵者"的PNG文件)
我使用的代码是:

invader = Content.Load<Texture2D>("Invader");

然而,当我尝试运行它时,它会说:

ContentLoadException未处理
无法将Invader加载为非内容文件!

C#MonoGame帮助?(Content.Load<;Texture2D>;(“入侵者”);)

我正在尝试加载一个已添加到内容文件夹的纹理(它是一个名为"入侵者"的PNG文件)invider=Content.Load("入侵者");

实际上,您可以直接加载已添加到content文件夹的PNG内容,如下所示:

invader = Content.Load<Texture2D>("Invader");

请注意,在某些平台上,文件名区分大小写的,因此要小心它是否完全匹配。此外,请确保已在"属性"窗口中将文件设置为"内容/复制"(如果更新)。

另一种选择是使用XNA Game Studio内容管道或MonoGame内容管道将您的资产编译为优化的二进制XNB文件。这将为您提供更好的性能,但会带来额外的开发开销。

我还应该提到,当将您的精灵渲染为原始PNG文件时,您应该在调用SpriteBatch时使用BlendState.NonPremultiplied。Begin以获得最佳结果。我在比赛中已经这样做了一段时间,我对结果很满意。

MonoGame没有完全实现内容管理器。通常,您可以单独构建内容,并将构建的内容文件导入到项目中。然后您可以像往常一样加载它们。

要构建内容文件,您可以使用XNA或MonoGame内容生成器,例如此生成器。如果您愿意,可以将命令行作为项目构建过程的一部分,以便自动构建内容。

确保您的构建操作设置为有问题的.png的内容。要执行此操作,请右键单击文件并选择属性。