XNA:使用内容.用Texture2D的子类加载

本文关键字:类加载 Texture2D XNA | 更新日期: 2023-09-27 18:14:04

所以我有一个Texture2D的子类叫做ScrollingBackgroundTexture。我想用它来加载一个纹理与Content.Load<>,但我似乎不能让它工作。

下面是我子类中的代码(到目前为止,它只是一个构造函数):
class ScrollingBackgroundTexture : Texture2D {
    public ScrollingBackgroundTexture(GraphicsDevice graphicsDevice, int width, int height) : base(graphicsDevice, width, height) { }
}

这是我的主类中给我带来麻烦的代码:

test = Content.Load<ScrollingBackgroundTexture>("near stars");

错误告诉我文件包含Texture2D,但我试图将其加载为ScrollingBackgroundTexture

我也试过

test = (ScrollingBackgroundTexture)Content.Load<Texture2D>("near stars");

但是这又给了我一个错误

XNA:使用内容.用Texture2D的子类加载

我认为你做不到。这是为什么。Texture2D的大小是X字节。滚动背景纹理的大小是X + Y大。scrolllingbackgroundtexture不知道如何加载X大的内容,因为它是X + Y大。

你需要做的是为ScrollingBackgroundTexture创建自己的自定义内容类型。你可以在MSDN上找到如何做到这一点的信息。

如果我是你,我会切换到一些更好的设计,更喜欢组合而不是继承!这将有一个额外的好处,即不会强迫您乱弄内容管道。