2013-03-06 69 views
1

我有一個splash類應該只顯示一個splash圖像,但它會導致空指針異常。它激動人心,因爲我已經在其他Java應用程序中使用了此方法。我已經閱讀了大量的文檔,看看我哪裏錯了,但我似乎無法找到它。LibGDX中的空指針初始屏幕

Splash.java class 
package com.me.fypapplication; 

import com.badlogic.gdx.Game; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.Screen; 
import com.badlogic.gdx.graphics.GL20; 
import com.badlogic.gdx.graphics.OrthographicCamera; 
import com.badlogic.gdx.graphics.Texture; 
import com.badlogic.gdx.graphics.Texture.TextureFilter; 
import com.badlogic.gdx.graphics.g2d.Sprite; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public class Splash implements Screen{ 

private SpriteBatch spriteBatch; 
private Texture splashTexture; 
private Sprite sprite; 

private Game myGame; 

private OrthographicCamera camera; 

public Splash (Game g) 
{ 
    myGame = g; 
} 

public void create() { 

    camera = new OrthographicCamera(800,400); 

    splashTexture = new Texture(Gdx.files.internal("data/splashtest.gif")); 

    sprite = new Sprite(splashTexture); 
    sprite.setSize(512, 512); 
    sprite.setPosition(256, 256); 

    spriteBatch = new SpriteBatch(); 

    splashTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 


} 

@Override 
public void render(float delta) { 

    Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    camera.update(); 

    spriteBatch.begin(); 
    sprite.draw(spriteBatch); 
    spriteBatch.end(); 

} 

如果有人可以幫助將非常感謝!

編輯! 忘記錯誤

Exception in thread "LWJGL Application" java.lang.NullPointerException 
at com.me.fypapplication.Splash.render(Splash.java:51) 
at com.badlogic.gdx.Game.render(Game.java:46) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110) 

回答

3

您的相機爲null,因爲沒有什麼是調用創建()。如果你正在實現一個libgdx屏幕並且需要初始化東西,那麼在render()被調用之前,你應該覆蓋show()方法。