現在、私はLibGDXのJSON出力ファイル書き込みクラスを使用して、ゲームのデータ保存(および読み込み)の一部を行っています。私はGoogleの全面的な解決策を見つけようとしてきましたが、近づいてきましたが、シガーはありませんでした。これまでのところ私は、ファイルにArray<Object>
を保存しようとすることに成功しましたが、私はロード/ファイルからデータを読み取るしようとすると、私は次の例外を取得:フィールドでLibGDX SerializationExceptionが見つかりません
com.badlogic.gdx.utils.SerializationException: Error reading file: cards.json
at com.badlogic.gdx.utils.Json.fromJson(Json.java:705)
at com.towersvault.unbalanced.util.save.SaveHandler.loadCards(SaveHandler.java:91)
at com.towersvault.unbalanced.util.save.SaveHandler.load(SaveHandler.java:51)
at com.towersvault.unbalanced.UnbalancedMain.create(UnbalancedMain.java:28)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
Caused by: com.badlogic.gdx.utils.SerializationException: Field not found: cards (com.badlogic.gdx.utils.Array)
Serialization trace:
{}.cards
at com.badlogic.gdx.utils.Json.readFields(Json.java:790)
at com.badlogic.gdx.utils.Json.readValue(Json.java:919)
at com.badlogic.gdx.utils.Json.fromJson(Json.java:703)
... 5 more
私のJSONファイルは、次のようになります。
{
"cards": [
{
"card": "ID_3",
"temper": "LAZY"
},
{
"card": "ID_2",
"temper": "LAZY"
},
{
"card": "ID_1",
"temper": "LAZY"
},
{
"card": "ID_1",
"temper": "LAZY"
}
]
}
積載方法のための私のソースコードは、次のようになります。
Array<CardData> loadedCards = json.fromJson(Array.class, CardData.class, Gdx.files.local("cards.json");
CardData
クラスは二つの変数、すなわちprivate Card card;
(typiを持っていますその変数は、各カードのインスタンスに対して設定した列挙型です)とprivate CardTemper temper;
(もう一方の列挙型と同じになる列挙型)です。他の機能をさらに実装すると、それらのカードがすべて同じではないため、カードのインスタンスが存在する必要があります。
私はどこが間違っているのか正確にはわかりませんが、主にゲーム情報の保存と読み込みに関する経験が不足していると思います。
誰かが私を助けてくれたら、大変感謝しています。