2015-04-18 2 views
0

У меня возникли проблемы с добавлением собственного пользовательского шрифта в мою игру, и мне было интересно, почему libgdx не нравится рисовать мой новый этап, который я установил после моего класс называется?Когда класс вызван, он не будет рисовать мой новый этап

Класс вызывается всякий раз, когда элемент пересекается с другим, а основной класс вызывает метод .render() этого класса. Я хочу, чтобы нарисовать строку «игра окончена» на экране, однако я получаю сообщение об ошибке при stage.act(delta):

Exception in thread "LWJGL Application" java.lang.NullPointerException 
    at com.mygdx.game.GameOverScreen.render(GameOverScreen.java:70) 
    at com.mygdx.game.MyGdxGame.render(MyGdxGame.java:191) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:214) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120) 

Вот мой код:

class GameOverScreen implements Screen { 
    Label gameoverstring; 

    private Stage stage; 
    SpriteBatch spritebatch; 

    BitmapFont white; 
    LabelStyle headingStyle; 

    @Override 
    public void show() { 
     stage = new Stage(); 
     white = new BitmapFont(Gdx.files.internal("new.fnt"), false); 
     headingStyle = new LabelStyle(white, Color.WHITE); 

     gameoverstring = new Label("game ovaaaa!", headingStyle); 
     gameoverstring.setFontScale(3); 
     stage.addActor(gameoverstring); 
    } 

    @Override 
    public void render(float delta) { 
     //gameoverstring.setPosition(0, 0); 
     Gdx.gl.glClearColor(0, 0, 0, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     stage.act(delta); 
     stage.draw(); 
    } 

    @Override 
    public void resize(int width, int height) { 
    } 

    @Override 
    public void pause() { 
    } 

    @Override 
    public void resume() { 
    } 

    @Override 
    public void hide() { 
    } 

    @Override 
    public void dispose() { 
    } 
} 
+0

Каждый раз, когда вы получаете сообщение об ошибке, вам нужно показать нам сообщение об ошибке. –

+0

http://pastebin.com/TrknENk9 –

ответ

0

Что-то на линии 70 (в вашем render способ) - null. См. What is a NullPointerException, and how do I fix it? для фона.

Я подозреваю, что ваша проблема в том, что stage в render - null. Вероятно, потому что ваш метод show еще не был вызван.

Смежные вопросы