Как я могу улучшить метод переключения на полноэкранный режим в моноагме?
Для моей моноигры C# я создал кнопки в меню параметров, чтобы игроку было легко переключаться между оконным и полноэкранным режимами. Моя функция оконного экрана работает отлично.
public static void WindowScreen(InputManager input)
{
mGraphics.PreferredBackBufferWidth = 1000;
mGraphics.PreferredBackBufferHeight = 600;
mGraphics.IsFullScreen = false;
mGraphics.ApplyChanges();
sScreenList = new List<IScreen> {new MainMenuScreen(input)};
sScreenList[0].LoadAssets();
}
Но как я могу создать то же самое в полноэкранном режиме? Я сделал вот это:
public static void FullScreen(InputManager input)
{
mGraphics.ToggleFullScreen();
mGraphics.IsFullScreen = true;
mGraphics.ApplyChanges();
sScreenList = new List<IScreen> {new MainMenuScreen(input)};
sScreenList[0].LoadAssets();
}
Но у меня проблемы с ToggleFullScreen(); Когда я запускаю свою игру в полноэкранном режиме, она отлично работает, чтобы переключиться на экран окна. После возврата к полноразмерному формату все искажается. Когда я закрываю игру (мой saveloadmanager запоминает размер экрана) и снова запускаю игру в полноэкранном режиме, ничего не искажается. Когда я запускаю игру в размере окна и хочу изменить ее в полноэкранном режиме, окно становится черным, и мне приходится ждать долго. После этого окно будет искажено в полноэкранном режиме.
Из-за этого я попытался создать полноэкранный режим без ToggleFullScreen(); Это мой новый код:
public static void FullScreen(InputManager input)
{
mGraphics.PreferredBackBufferWidth = GraphicsDevice.DisplayMode.Width;
mGraphics.PreferredBackBufferHeight = GraphicsDevice.DisplayMode.Height;
mGraphics.IsFullScreen = true;
mGraphics.ApplyChanges();
sScreenList = new List<IScreen> {new MainMenuScreen(input)};
sScreenList[0].LoadAssets();
}
Теперь я получаю "CS0120 C# Ссылка на объект требуется для нестатического поля, метода или свойства" для первых строк. Мой метод FullScreen должен быть статическим, иначе я не смог бы работать с ним во многих других моих методах.
Я уже искал другие вопросы, но не могу найти ответа на свои две проблемы. Кто-нибудь знает, как исправить мою первую или вторую попытку? Или есть у кого-нибудь получше, как сделать полноэкранный метод?