Я пытаюсь создать начальное меню для своей игры, и мой код использует Enum для мониторинга состояния экрана.Как изменить значение enum из основного класса в другом классе
Теперь я хочу, чтобы изменить screenstate объявленного в главном классе, в моем Фоновом
Screen screen = new Screen();
объявлен в классе Game1
Background(ref screen);
Это в методе обновления для фона Класс
KeyboardState keystate = Keyboard.GetState();
switch (screen)
{
case Screen.Start:
if (isPressed && keystate.IsKeyUp(Keys.Up) && keystate.IsKeyUp(Keys.Down) && keystate.IsKeyUp(Keys.Enter))
{
isPressed = false;
}
if (keystate.IsKeyDown(Keys.Down) && isPressed != true)
{
if (menuState == MenuState.Options)
menuState = MenuState.Credits;
if (menuState == MenuState.Play)
menuState = MenuState.Options;
isPressed = true;
}
if (keystate.IsKeyDown(Keys.Up) && isPressed != true)
{
if (menuState == MenuState.Options)
menuState = MenuState.Play;
if (menuState == MenuState.Credits)
menuState = MenuState.Options;
isPressed = true;
}
switch (menuState)
{
case MenuState.Play:
arrowRect.X = 450;
arrowRect.Y = 220;
if (keystate.IsKeyDown(Keys.Enter) && isPressed != true)
screen = Screen.Play;
break;
case MenuState.Options:
arrowRect.X = 419;
arrowRect.Y = 340;
if (keystate.IsKeyDown(Keys.Enter) && isPressed != true)
screen = Screen.Options;
break;
case MenuState.Credits:
arrowRect.X = 425;
arrowRect.Y = 460;
if (keystate.IsKeyDown(Keys.Enter) && isPressed != true)
screen = Screen.Credits;
break;
}
break;
}
}
По какой-то причине, когда я играю в это, и я нажимаю кнопку ввода экран «Фоновый класс» изменен, но экран основного класса не так, как я могу это изменить?
Мне нравится этот метод, но разве вокруг него нет возможности? – MikaAK
Вы имеете в виду решение? Я не могу понять, что такое 'screen', вы вызываете конструктор, но затем вы назначаете его как' enum'. – pinckerman
действительно ... как я не видел, что ха-ха, я новичок, я просто привык к инициализации типов. Каково это, если это тип значения, как я могу его отменить? – MikaAK