MonoGame (버전 3.2, 작성 당시의 마지막 임원)을 사용하여 간단한 테스트 응용 프로그램을 만들었지 만 응용 프로그램을 전체 화면으로 만들 수는 없습니다. MonoGame GraphicsDevice.DisplayMode가 작동하지 않습니다.
나는 다른 곳에서이 코드를 발견protected override void Initialize()
{
graphics.IsFullScreen = true;
graphics.PreferredBackBufferWidth = GraphicsDevice.DisplayMode.Width;
graphics.PreferredBackBufferHeight = GraphicsDevice.DisplayMode.Height;
graphics.ApplyChanges();
Window.IsBorderless = true;
Window.Position = new Point(0, 0);
base.Initialize();
}
을 그러나 문제는 GraphicsDevice.DisplayMode
항상 800x600
의 화면 크기를 반환하는 것입니다. 또한 GraphicsAdapter.Adapters
컬렉션에는 지원되는 단일 디스플레이 모드 (800x600)와 함께 단일 어댑터 만 포함됩니다.
여기에서 문제가 될 수있는 것은 무엇입니까? 내 현재 해상도는 1920x1080이며 두 대의 모니터를 확장 바탕 화면으로 연결하면 동일한 결과가 나타납니다 (내 일반적인 설정). 끝에
업데이트는 단순히 System.Windows.Forms
에 대한 참조를 추가하고 사용 : MonoGame 제대로 어떤 어댑터/화면을 감지하지 않는 이유
graphics.IsFullScreen = true;
graphics.PreferredBackBufferWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
graphics.PreferredBackBufferHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
graphics.ApplyChanges();
가 아직도 궁금합니다.
업데이트 2this answer에서 언급 한 바와 같이 비공식 빌드 (작성 당시)에서 문제가 해결되었습니다.
'Game' 생성자의 끝에 코드를 옮겨보십시오. – Vlad
@Vlad :'GraphicsDevice'가 ctor 내에서 null이기 때문에 작동하지 않습니다 (적어도 MonoGame에서는 XNA에서 다르게 동작한다고 생각합니다). – Lou
'base.Initialize()'다음에'graphics.IsFullScreen = true' 및 * nothing * else를 설정하고 예상대로 작동합니다. 이 문제를 해결하기 위해 winform을 사용하고 있으므로 Linux/Mac이 아닌 Windows를 사용하고있는 것으로 추측 할 수 있습니다. 어떤 버전인지 확인해 주시겠습니까? VM을 설정하고 모양을 보겠습니다. – Joe