XNA: использование Content.Load с подклассом Texture2D - PullRequest
0 голосов
/ 10 ноября 2011

Итак, у меня есть подкласс 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");

Но это просто дает мне еще одну ошибку.

1 Ответ

3 голосов
/ 10 ноября 2011

Я не думаю, что вы можете сделать это.Вот почемуРазмер Texture2D составляет X байт.Размер текстуры ScrollingBackgroundTexture X + Y большой.ScrollingBackgroundTexture не знает, как загружать контент X большой, потому что он большой X + Y.

Что вам нужно сделать, это создать свой собственный тип контента для ScrollingBackgroundTexture.Вы можете найти информацию о том, как это сделать, на MSDN .

Если бы я был вами, я бы переключился на что-то с немного лучшим дизайном, который предпочитает композицию над наследованием !Это даст дополнительный бонус, не заставляя вас возиться с конвейером контента.

...