Ich muss nur zu einer Aktivität von LibGdx Kern-Klassen gehen, aber mein Problem ist, dass ich einen GameStateManager benutze, der mich mit diesem posts answer ich habe gefunden. Der Fehler gab mir war, dass meine Hauptklasse im Kernprojekt " MyGdxGame "war null.Wie kann ich auf eine Aktivität aus dem LibGdx-Kernprojekt zugreifen?
Das ist mein GameStateManager Klasse:
public class GameStateManager {
private GameState gameState;
public static final int MENU = 0;
public static final int PLAY = 1;
public static final int HIGHSCORESTATE = 2;
public static final int BALLSTORE = 3;
public static final int CHARACTERSTORE = 4;
public static final int WINAPRIZE = 5;
public GameStateManager(){
setState(MENU);
}
public void setState(int state){
if(gameState != null)gameState.dispose();
if(state == MENU){
gameState = new MenuState(this);
}
if(state == PLAY){
gameState = new PlayState(this);
}
if(state == HIGHSCORESTATE){
gameState = new HighScoreState(this);
}
if(state == BALLSTORE){
gameState = new BallStoreState(this);
}
if(state == CHARACTERSTORE){
gameState = new CharacterStoreState(this);
}
if(state == WINAPRIZE){
gameState = new WinPrizeState(this);
}
}
public void update(float dt){
gameState.update(dt);
}
public void draw(){
gameState.draw();
}
}
Und das ist meine GameState Klasse, die alle meine Staaten
public abstract class GameState {
protected GameStateManager gsm;
protected GameState(GameStateManager gsm){
this.gsm = gsm;
init();
}
public abstract void init();
public abstract void update(float dt);
public abstract void draw();
public abstract void handleInput();
public abstract void dispose();
}
verlängern Und das ist mein MyGdxGame class.AndroidStuff das Interface ist.
public class MyGdxGame extends ApplicationAdapter {
public static int WIDTH;
public static int HEIGHT;
public static OrthographicCamera camera;
private GameStateManager gsm;
public MyGdxGame(AndroidStuff androidStuff) {
super();
this.androidStuff = androidStuff;
}
@Override
public void create() {
WIDTH = Gdx.graphics.getWidth();
HEIGHT = Gdx.graphics.getHeight();
camera = new OrthographicCamera();
camera.translate(WIDTH/2, HEIGHT/2);
camera.update();
gsm = new GameStateManager();
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
gsm.update(Gdx.graphics.getDeltaTime());
gsm.draw();
}
}
Bitte fügen Sie auch Ihre "MyGdxGame" Datei hinzu. –
@BasimKhajwal Bearbeitet. –
Die angegebenen Klassen scheinen korrekt zu sein, der Fehler stammt wahrscheinlich von 'MenuState', bitte fügen Sie auch diese Datei hinzu. –