0

所以我有一个 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");

该错误告诉我该文件包含 a Texture2D,但我正在尝试将其加载为ScrollingBackgroundTexture.

我也试过

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

但这只是给了我另一个错误。

4

1 回答 1

3

我不认为你能做到这一点。这就是为什么。Texture2D 的大小是 X 字节。ScrollingBackgroundTexture 的大小是 X + Y 大。ScrollingBackgroundTexture 不知道如何加载 X 大的内容,因为它是 X + Y 大。

您需要做的是为 ScrollingBackgroundTexture 创建您自己的自定义内容类型。您可以在MSDN找到有关如何执行此操作的信息。

如果我是你,我会改用更好的设计,有利于组合而不是继承!这将有一个额外的好处,那就是不强迫你搞乱内容管道。

于 2011-11-09T23:47:07.883 回答