【问题标题】:Can you add a texture to an XNA project with code?你能用代码为 XNA 项目添加纹理吗?
【发布时间】:2014-03-16 03:24:02
【问题描述】:
我最近一直在尝试开发游戏,所以我今天才开始学习 XNA,在最后放弃了一个 WinForms 游戏之后。所以,我知道你应该在使用 Visual Studio 解决方案资源管理器时加载纹理,但是有没有办法用一行代码来做到这一点,类似于Game.LoadTexture(string filename); 或类似的东西?因为我更喜欢从代码中做所有事情以保持一切顺利。
【问题讨论】:
标签:
c#
xna
runtime
textures
loading
【解决方案1】:
如果您使用的是 XNA 3.1 或更早版本,您可以查看Texture.FromFile (see here)。此方法适用于1D、2D 和3D 纹理,应在LoadContent 方法中使用。
但是,如果您使用的是 XNA 4.0,则没有 Texture.FromFile 方法。取而代之的是Texture.FromStream(尽管我认为Texture3D 或Texture 没有FromStream 方法)。您可以创建一个方法来从文件加载纹理(在本例中为 Texture2D):(来自 here 的代码)
private Texture2D TextureFromFile(string path)
{
FileStream fs = new FileStream(path, FileMode.Open);
Texture2D t2d = Texture2D.FromStream(GraphicsDevice, fs);
fs.Close();
return t2d;
}
另请参阅here 和here 了解更多信息,尤其是后者用于从文件中获取texture 或Texture3D。
高温