2014-02-06 2 views
0

저는 Monogame과 함께 일하고 있습니다. 매우 간단한 것을하려고합니다. 화면에 사각형을 그립니다. 본질적으로 할 수있는 가장 기본적인 것. 템플릿에 추가 한 코드는 다음과 같습니다.Monogame/XNA Flickering Corrupted Texture2D

spriteBatch.Begin(); 

spriteBatch.Draw(
    new Texture2D(GraphicsDevice, 100, 100), 
    new Vector2(100, 100), 
    Color.Red 
); 

spriteBatch.End(); 

다음은 프로그램을 실행할 때 표시되는 몇 가지 예입니다.

화상

프레임마다 변경되고, 결국 단지 정적 점멸 표시. 이것은 분명히 코드 작성 방법에 대한 문제가 아니므로 Monogame과 관련된 문제, Monogame 설치 문제 또는 비디오 카드/드라이버 관련 문제 중 하나 여야합니다. 저는 최신 드라이버가있는 NVIDIA Geforce GTX 570을 사용하고 있습니다.

어떻게 해결할 수 있을지에 대한 의견이 있으십니까? 명확하게

답변

1

이것은 내가 내 코드 내가 동의

작성한 방법에 문제가되지 않습니다. 이것은 매우 분명 문제입니다 :

spriteBatch.Draw(
    new Texture2D(GraphicsDevice, 100, 100), 
    new Vector2(100, 100), 
    Color.Red 
); 

당신은 아주 새로운 100 × 100 텍스처마다 하나의 프레임을 초기화하고 다음 의 내부의 데이터를 참을 수 없어. 그 중 하나를하지 마십시오! 아무 이유없이 비디오 메모리를 엄청나게 씹고 있고, 텍스처가 할당 된 공간에 이미 생겨난 쓰레기가 가득 찼습니다.

는 하나의 질감을 만들고 유효한 데이터로 채우기 :

var nullTexture = new Texture2D(GraphicsDevice, 1, 1); 
nullTexture.SetData(new [] { Color.White }); 
+0

아, 내 초기 코드에서 나는 초기화 기능을 한 번 널 텍스처를 생성했지만, 난이 SetData를 함수를 호출되지 않았습니다. 그것이 내가 잘못한 곳입니다. 감사. – user3280051