libGDXのAssetManagerを使用しています。私のファイルが.update()メソッドを使って読み込まれていることを確認しました。 AssetManager.update()がtrueを返すと、ブール値がロードされ、がtrueになります(すべてがロードされたことを意味します)。私のファイルがロードされていても、AssetManager.get()がnullを返す
if(loaded)
{
if(player == null && walls == null)
{
player = new Player(this);
walls = new WallList(this);
}
//unrelated stuff
}
私の選手オブジェクトはテクスチャを使用しており、うまく動作します。 しかし、私の壁オブジェクトもテクスチャを使用しますが、クラッシュします。ここに私のセットアップが(私のWallListコンストラクタで)上記のコードで
//unrelated stuff
this.colors = new HashMap<Color, String>();
this.spawningColor = Color.red;
colors.put(Color.red, "sqr_wall_red");
for(int i = 0; i < wallCountNeeded; i++)
{
this.add(new Wall(getTextureFromColor(spawningColor), i*wallWidth, 0));
}
だ、私はHashMapを作成し、また、PNGの名前である「sqr_wall_red」を割り当てます。 Color.Redをパラメータとして使用している間、TextureFromColorを呼び出してAssetManagerからテクスチャを取得します。
private Texture getTextureFromColor(Color color)
{
return game.getAssetManager().get("data/Sprites/" + colors.get(color) + ".png", Texture.class);
}
そして私はcom.cedric.game.geometry.WallList.getTextureFromColorのスレッド "LWJGLアプリケーション" のjava.lang.NullPointerException (WallList.java:45)でこのエラー
例外を取得com.cedric.game.geometry.WallListで 。(WallList.java:39)
私はこの
ようにそれをロードするため、パスが大丈夫であるという事実ではかなり自信assetManager.load("data/Sprites/sqr_wall_red.png", Texture.class);
と私は(assetManager.getために使用しているパスを印刷する場合)
System.out.println("data/Sprites/" + colors.get(spawningColor) + ".png");
IはassetManager.load(正確な入力と一致出力()
としてこれを取得しますデータ/スプライト/ sqr_wall_red.png
私は私の問題を解決するために十分な情報を提供してきたと思いますが、あなたは、NE場合私はより多くを喜んで表示します。
'WallList.java'の45行目は何ですか? –
戻るgame.getAssetManager()。get( "data/Sprites /" + colors.get(color)+ ".png"、Texture.class); –
NPEの原因となるコード行には、少なくとも3つの可能性のある場所があります: 'game'、' getAssetManager() '、' colors'。それがどれであるかを判断する必要があります。 –