(我正在使用 VS2012 Ultimate 用 MonoGame 制作 Windows Phone 8 游戏)
所以我有一个名为 ImagePathStorer 的类。该类的目的是存储来自我的 xnb 背景文件的字符串路径,而不是在我的 LoadContent 方法(在 DrawableGameComponent 中)中编写以下代码:
_bg = Game.Content.Load<Texture2D>(@"Resources/Images/Backgrounds/Loading");
我可以写这个来让它更干净,更容易维护:
_bg = Game.Content.Load<Texture2D>(images.getBackgroundsPath(BackgroundName.Loading));
笔记 :
_bg 是一个 Texture2D 对象。
BackgroundName 是一个枚举,用于在我的项目中存储背景的名称。
这是 ImagePathStorer 类:
public class ImagePathStorer
{
private List<string> backgroundsPath;
public ImagePathStorer()
{
InitBackgroundsPath();
}
private void InitBackgroundsPath()
{
backgroundsPath = new List<string>();
backgroundsPath.Insert((int)BackgroundName.Battle, @"Resources/Images/Backgrounds/Battle");
backgroundsPath.Insert((int)BackgroundName.Loading, @"Resources/Images/Backgrounds/Loading");
backgroundsPath.Insert((int)BackgroundName.Option, @"Resources/Images/Backgrounds/Option");
backgroundsPath.Insert((int)BackgroundName.Start, @"Resources/Images/Backgrounds/Start");
backgroundsPath.Insert((int)BackgroundName.Tutorial, @"Resources/Images/Backgrounds/Tutorial");
}
}
但是当我编译它时,有一条错误消息来自:
_bg = Game.Content.Load<Texture2D>(images.getBackgroundsPath(BackgroundName.Loading));
....它说:“ContentLoadException 未被用户代码处理”“在 MonoGame.Framework.DLL 中发生了“Microsoft.Xna.Framework.Content.ContentLoadException”类型的异常,但未在用户代码中处理”
我试过这个:
_bg = Game.Content.Load<Texture2D>("@"+images.getBackgroundsPath(BackgroundName.Loading));
但结果并没有什么不同。任何想法?非常感谢。