2017-09-13 6 views
-1

「通常の」方法の代わりにLib GDX AssetManagerを使用して、テクスチャをインポートしました。しかし、それを試してみると、すぐにNullPointerExceptionエラーが発生しました。ここでは、コードは次のようになります。LibGDX TextureRegion NullPointerException

assets = Generals.getAssetManager(); 
    assets.load("Characters/c.pack", TextureAtlas.class); 
    assets.finishLoading(); 
    TextureAtlas atlas = assets.get("Characters/c.pack", TextureAtlas.class); 
    atlas.findRegion("PriestOverworld3"); 
    Array<TextureRegion> frames = new Array<TextureRegion>(); 
    Texture testtex = new Texture("Characters/c.png"); 
    TextureRegion test = new TextureRegion(testtex); 
    for (int i = 0; i < 3; i++) { 
     System.out.println(i); 
     frames.add(new TextureRegion(getTexture(), i * 16, 0, 16, 16)); 
    } 
    playerStasis = new Animation<>(0.2f, frames); 

私はライン

frames.add(new TextureRegion(getTexture(), i * 16, 0, 16, 16)); 

エラーでNullPointerExceptionが取得:

Exception in thread "LWJGL Application" java.lang.NullPointerException 
    at com.badlogic.gdx.graphics.g2d.TextureRegion.setRegion(TextureRegion.java:82) 
    at com.badlogic.gdx.graphics.g2d.TextureRegion.<init>(TextureRegion.java:53) 
    at Project.sprites.Player.<init>(Player.java:55) 

TextureRegion:

// TextureRegion.java:53 
setRegion(x, y, width, height); 
... 
// TextureRegion.java:82 
float invTexWidth = 1f/texture.getWidth(); 
+0

を使用してみてください? –

+0

getTexture()はTextureRegionのテクスチャを取得します。この場合、「PriestOverworld3」はTextureRegionです。 c.packはTextureAtlasで、c.pngを使用します。 c.pngは使用されるテクスチャです。 – JasperMW

答えて

2

あなたがしているように見えますアトラスを見つけてそれを変数に設定します。

は `getTexture()`何この

frames.add(new TextureRegion(atlas.findRegion("PriestOverworld3"), i * 16, 0, 16, 16)); 
+0

Worked!ありがとう、3時間私の画面を見つめている。 – JasperMW

関連する問題