質問: ubuntuでJavaを使用して簡易的なRPGゲームを制作しています。 そこで、特定の位置に来たら(具体的に言うと添付した画像の位置に来たら)セーブをできるようにしたいです。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/16ada7ea759bde7fa56bdc78bdd91754.png) セーブ機能の実装のやり方としては、別のテキストファイルに必要な変数たち(まだ未実装ですが、主人公のレベル、アイテムなど) を保存して、ロードするときにはそこに保存した変数を呼び出すという形をとることはなんとなく理解しています。 初心者なので"FileWriter"クラスと"FileReader"クラスをつかって実装できればいいのかなと思っております。 最後に、使用しているソースコードらをダウンロードするリンクを添付するので お力添えをしていただけたら幸いと思います。 リンク内容 passwordはyamaaaです。 よろしくお願いします。
回答: 例えば以下のようなSaveDataクラスを作ります。中身自体はで回答した内容を参考にご自分で作成してください。 ``` public class SaveData { public int charaPosX; public int charaPosY; public void save() { // Propertiesを使った保存処理で、charaPosX、charaPosYを保存 } public void load() { // Propertiesを使った読込処理で、charaPosX、charaPosYを読込 } } ``` あとは使いたいタイミングでSaveDataクラスをnewしてloadやsaveを行うだけです。 ``` SaveData sd = new SaveData(); sd.load(); // 読込処理を行う chara = new MoveChara(sd.charaPosX, sd.charaPosX, mapData); // SaveDataからキャラのXYを取り出して使う ``` ``` SaveData sd = new SaveData(); sd.charaPosX = chara.getPosX(); // SaveDataにキャラのXYを設定する sd.charaPosY = chara.getPosY(); sd.save(); // 保存処理を行う ``` あなたのコードでいうならloadはRpgGameControllerのinitializeの中に、saveはいまの処理ではRpgGameControllerのnextで位置を判定して実行、がよいかと思います。