0
我想创建一个小型的XNA控件库供个人使用,并且我想为组件提供默认纹理。问题是,我不知道如何在xna类库中包含内容项目并从该类库访问它以获取这些纹理。这甚至有可能吗?如果是,那怎么办?如何将一个内容项目集成到一个XNA类库
我想创建一个小型的XNA控件库供个人使用,并且我想为组件提供默认纹理。问题是,我不知道如何在xna类库中包含内容项目并从该类库访问它以获取这些纹理。这甚至有可能吗?如果是,那怎么办?如何将一个内容项目集成到一个XNA类库
您可以通过右键单击Visual Studio Solution窗口中的项目标题并选择添加内容项目...(假设内容项目已添加到您的解决方案中),将内容项目添加到您的XNA库。
如果要使用内容项目提供的资源,您必须将Game :: Content属性传递到您的库类构造函数中,并以与在常见XNA应用程序中执行操作相同的方式加载所有资源。
public class Class1
{
public Class1(ContentManager content)
{
var tex = content.Load<Texture2D>("test");
}
}
也可以实现自定义类为DrawableGameComponent和指定的内容将在LoadContent()阶段被加载,所有重写的方法将被称为automaticaly当它的时间给他们打电话。做这样的水木清华:
public class Class1: DrawableGameComponent
{
public Class1(Game game)
: base(game)
{
}
protected override void LoadContent()
{
var tex = this.Game.Content.Load<Texture2D>("test");
}
}
您可以在游戏类添加成分是这样的:
Components.Add(new Class1(this));
PS:如果你使用不同内容的项目,你可能需要加载纹理之前指定根内容文件夹在你的类库是这样的:
this.Game.Content.RootDIrectory="<ENTER CONTENT PROJECT NAME HERE>";
所以从我个人理解,有直接实例ContentManager进入游戏库中没有_actual_方式,而对于天秤座内部的部件负荷资产直接使用它,而不依赖于你使用游戏库的游戏。这是正确的吗? –