我正在尝试为我的项目编写一个自动资源加载器,所以它进展顺利。但是我坚持加载精灵。我用它来检查文件是否存在
if (File.Exists(contentManager.RootDirectory + "/Sprites/" + spriteName + ".png"))
但是它永远不会找到该文件,即使该文件存在于项目的内容中。我检查了文件夹,发现.pngs被.xnb文件替换。所以我尝试更改文件扩展名,然后在Sprite Load函数中给出错误
return contentManager.Load<Texture2D>(assetName);
只有当我将其从典型的图像文件(png,bmp等)更改时才会发生。有人可以解释为什么这是问题以及如何解决这个问题?我没有xna文件扩展名的经验,无法找到我需要的答案。我想要的是将新图像加载到项目中,前提是它在编译后存在于内容目录中
关于这个主题,声音和音乐是否会受到编译器的影响?
答案 0 :(得分:1)
使用内容项目时,资源将作为xnb文件再次导入,处理和写入磁盘。
如果要动态加载资源,则必须通过内容构建器动态编译文件,或者避免使用内容项目。
Microsoft提供了这样的示例来动态加载内容:http://xbox.create.msdn.com/en-US/education/catalog/sample/winforms_series_2
如果你想分发应用程序,运行时xna不是很好,你需要安装完整的xna框架和visual studio才能工作。
如果您想要内容项目中的原始文件,则必须将其“复制到输出文件夹”属性更改为“始终复制”,并意识到编译结果将位于“project folder \ bin \ debug \ content” “