Сохранение состояния игры в файл

Сейчас я нахожусь в точке, где мне нужно сохранить текущее состояние игры. Я использую libGDX, добавил в свой проект библиотеку kryo и провел некоторые тесты.

Вопрос:

  • Должен ли я переопределять файл при каждом сохранении или я могу переопределять только те фрагменты, которые меняются из одного класса.

  • Должен ли я всегда создавать новый OutputStream, если я хочу сохранить игру? (например, сохранять игру каждые 5 минут)

  • Я хочу, чтобы текущие объекты, созданные для сохранения, я должен создать один файл для всех или для каждого объекта файл?


person Dario Kowalski    schedule 06.06.2016    source источник


Ответы (1)


Дарио,

Должен ли я переопределять файл при каждом сохранении или я могу переопределять только те фрагменты, которые меняются из одного класса.

Вы не должны, но должны (создавайте новый файл сохранения при каждом сохранении). Нет причин усложнять это.

Должен ли я всегда создавать новый OutputStream, если я хочу сохранить игру? (например, сохранять игру каждые 5 минут)

Опять же, чего волноваться? Вы сохраняете один раз в 5 минут, вы не заметите никакой разницы (кроме вашего времени кодирования и потраченных усилий), если вы повторно использовали свой OutputStream или создали новый. Создайте новый.

Я хочу, чтобы текущие объекты, созданные для сохранения, я должен создать один файл для всех или для каждого объекта файл?

Зависит от того, что имеет смысл и что представляют собой эти «сущности». В любом случае, чтобы сохранить объект, вам нужно будет его сериализовать, что является просто причудливым способом сказать, создать его представление в тексте. Чтобы загрузить объект, выполните обратный процесс (десериализуйте его). Самый простой способ узнать, как это сделать, — создать JSONObject (библиотеку здесь ). Поместите значения из объекта в JSONObject и, чтобы превратить его в текст, вызовите JSONObject.toString(). Чтобы десериализовать его, создайте новый JSONObject и передайте текст в его конструктор. Затем вы можете получить значения.

person WonderfulWorld    schedule 06.06.2016
comment
Эти объекты могут быть 3 типов: Враги макс. 15, Снаряды макс. 50, Блоки (треугольники, которые можно разрушить, но со временем вырастают снова). быть загруженным) - person Dario Kowalski; 07.06.2016
comment
Сохраните его в 1 файл, как описано. - person WonderfulWorld; 07.06.2016