0

TmxMapLoader を介してタイル マップを読み込んでいますが、タイルなどを取得するのに問題はありません。しかし、オブジェクト レイヤーから値を抽出したい場合、次のコードでは x、y しか取得できません。

MapProperties props = layer.getObjects().get(i).getProperties();
float x = (float) props.get("x");
float y = (float) props.get("y");

これで正しい値が得られますが、これを追加しようとすると:

float width = (float) props.get("width");
float height = (float) props.get("height");

次のエラーが表示されます。

Exception in thread "LWJGL Application" java.lang.NullPointerException
at cz.vilix.managers.MapManager.<init>(MapManager.java:67)
at cz.vilix.main.Game.create(Game.java:50)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

(MapManager の 67 行目は、幅の値を取得しようとする場所です。) プロパティ ウィンドウに一覧表示されているオブジェクトのプロパティから何でも取得できるのは、少し奇妙に思えます。

ここに画像の説明を入力

また、「幅」と「高さ」の代わりに「幅」と「高さ」を使用しても機能しません。

次のようにタイプを Object に変更します。

Object width = props.get("Width");
Object height = props.get("Height");
System.out.println(width + " " + height);

プリント: null null.

4

1 に答える 1