Witam Wszystkich! Potrzebuję pomocy dotyczącej problemów ze zmiennymi globalnymi.
Mam 3 klasy - Core.java, MainScreen.java oraz Settings.java.
Core - klasa posiadająca zadeklarowane zmienne publiczne globalne
MainScreen - główny ekran
Settings - ekran, na który chcę przejść z MainScreen.
Część kodu Core odpowiedzialna za zmienne i zmianę pomiędzy ekranami:
public String menuID = "MainMenu";
public void setMenuID(String strmnid){
this.menuID = strmnid;
}
(...)
switch(this.menuID){
case("Settings"):
setScreen(new Settings());
break;
case("MainMenu"):
setScreen(new MainScreen());
break;
case("ExitApp"):
Gdx.app.exit();
default:
Gdx.app.log(LOG, "Default");
break;
}
Problem pojawia się w klasie MainScreen:
if(Gdx.input.isKeyPressed(Keys.ESCAPE)){
core.setMenuID("Settings");
}
Gdy w podklasie MainScreen ustawiam zmienną menuID na "Settings", to w klasie Core nadal pozostaje ona jako menuID = "MainMenu". Nie mogę zmienić żadnej zmiennej z klasy Core, mimo tego, że wszystko jest ustawione jako publiczne. Klasa Core musi odpowiadać za zmianę ekranów, a w poszczególnych ekranach, musi być zmiana - czyli poprzez kliknięcie danego klawisza, w klasie Core, menuID powinno się zmieniać na inny ekran.
Proszę o szybką pomoc, jeżeli macie jakieś pytania, proszę piszcie, bardzo zależy mi na naprawieniu tego błędu.