2011-11-09 3 views
0

그래서 Texture2D의 하위 클래스는 ScrollingBackgroundTexture입니다. Content.Load<>을 사용하여 텍스처를로드하고 싶습니다. 그러나 작동시키지 못합니다.XNA : Texture2D의 하위 클래스로 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"); 

을 시도했다 그러나 그것은 단지 나에게 또 다른 오류를 제공합니다.

답변

3

나는 그렇게 생각하지 않습니다. 이유가 여기 있습니다. Texture2D의 크기는 X 바이트 큽니다. ScrollingBackgroundTexture의 크기는 X + Y입니다. ScrollingBackgroundTexture는 X + Y이므로 X가 큰 콘텐츠를로드하는 방법을 알지 못합니다.

ScrollingBackgroundTexture에 대한 사용자 지정 콘텐츠 형식을 직접 만들어야합니다. 이를 수행하는 방법에 대한 정보는 MSDN에서 확인할 수 있습니다.

만약 내가 너라면, 조금 더 나은 디자인으로 뭔가를 바꿔 줄 것이다. composition over inheritance! 이렇게하면 콘텐츠 파이프 라인을 엉망으로 만들지 않아도된다는 보너스가 추가됩니다.

+0

아, 설명해드립니다! 나는 완벽하게 기능 할뿐만 아니라 조금 더 단순한 해결 방법을 만들 수있었습니다. 고맙습니다! –

관련 문제