Я делаю игру, и я столкнулся с некоторой проблемой. Из предыдущих исследований я нашел способ изменения переменной из нескольких классов, но она не работает. Я установил все свои экраны в список массивов, и я пытаюсь использовать эту переменную для переключения между экранами, но экран не меняется. в визуальной студии нет ошибки, поэтому я не знаю, что пошло не так. жаль, что не смог указать на определенную линию. любая помощь очень ценится.пытается изменить переменную из другого класса, не работает
это класс, который использует Int32 GlobalVar.activescreen
public class ManageTheseScreens
{
ArrayList Screens;
Screen CurrentScreen;
public ManageTheseScreens()
{
Screens = new ArrayList();
Screens.Add(new TitleScreen());
Screens.Add(new OptionScreen());
CurrentScreen = (Screen)Screens[GlobalVar.activescreen];
}
public void Draw(SpriteBatch spriteBatch)
{
CurrentScreen.Draw(spriteBatch);
}
}
это класс, который держит Int32
public static class GlobalVar
{
public static Int32 activescreen = 0;
}
это класс, который пытается изменить его
class OptionScreen : Screen
{
Rectangle titleButton1Rectangle = new Rectangle(450, 100, 222, 44);
MouseState mouseState;
public OptionScreen()
: base()
{
}
public void Update()
{
mouseState = Mouse.GetState();
if (titleButton1Rectangle.Contains(new Point(Mouse.GetState().X, Mouse.GetState().Y)))
{
if (Mouse.GetState().RightButton == ButtonState.Pressed)
{
///this should switch screens
GlobalVar.activescreen = 1;
}
}
}
Что не работает? Я считаю, экран не меняется? возможно, из-за того, что вы изменяете переменную, но не вызываете ничего, что проверяет ее после того, как вы ее измените .... угадывая здесь, поскольку вы не предоставили достаточную информацию – Sorceri
правильно, экран не изменяется. Я не думаю, что мне нужно вызывать все, что обновляет его, потому что оно находится в функции Draw, которая вызывается несколько раз в секунду. пожалуйста, исправьте меня, если я ошибаюсь, но я верю, что так оно и работает. – MlkShakes
, пожалуйста, научитесь использовать отладчик, вы должны быть в состоянии сказать нам, действительно ли значение переменной изменяется, просто запустив программу и глядя на нее –