Сохранение данных уровня в XNA - PullRequest
0 голосов
/ 15 июля 2010

Я пишу игру в XNA. Первая главная цель - завершить его и запустить на Windows, но после этого я буду покупать комплект 360 и менять все необходимые биты, чтобы превратить его в рабочую игру на 360.

В настоящее время я пишу редактор уровней, который я буду использовать для создания уровней, но также оставляю их как пользовательскую функцию. Мне было интересно, каким будет лучший / самый распространенный / самый простой способ сохранения данных и где я должен их сохранить?

Ответы [ 2 ]

3 голосов
/ 16 июля 2010

Формат уровня

Что касается формата, в котором вы сохраняете данные, это зависит от вас. Если вы можете представить данные своего уровня в виде простого текста, возможно, серии строк и цифр, сделайте это. Многие редакторы уровней представляют данные уровня, используя пользовательский класс / структуру или XML.

Подготовка к сохранению

Если данные представляют собой обычный текст или XML, то ваша работа проста, никакой подготовительной работы не требуется. Если данные содержатся в классе / структуре, вам необходимо сначала сериализовать данные, прежде чем записывать их в хранилище.

Сериализация в основном облегчает сохранение данных в вашем классе путем преобразования вашего класса в формат, который легко записать в хранилище (десериализация идет в другом направлении).

Сериализация часто выполняется с помощью класса XMLSerializer. Для простого примера этого вам может понадобиться пример MSN , где демонстрируется, как сохранять / загружать сохраненные игровые данные.

Примечание: некоторые люди не любят сериализацию в XML, потому что он предоставляет свои данные любопытным глазам, для редактора уровней это, вероятно, не проблема и, возможно, даже желательно.

Сохранение данных

Последнее соображение - это метод, используемый для сохранения данных. На ПК вы можете записывать данные в любое произвольное место, используя стандартные библиотеки .NET, однако на 360 это не так. Если вы играли во многие игры 360, вы будете знать, что в каждой игре появляется диалоговое окно с вопросом Вы, какое устройство хранения данных использовать. Вам нужно будет использовать те же классы и методы, что и в других играх 360, а именно класс XNA StorageContainer . У Microsoft есть несколько замечательных примеров здесь , которые должны вам помочь.

Поскольку вы планируете оставить свой редактор уровней в качестве пользовательской функции, я бы рекомендовал вам использовать библиотеки XNA (Guide.BeginShowStorageDeviceSelector, StorageContainer) для реализации сохранения / загрузки данных уровней для ПК и 360. Это просто чтобы избежать необходимости писать отдельный код сохранения / загрузки для ПК и 360.

2 голосов
/ 16 июля 2010

Я бы предложил использовать Microsoft.Xna.Framework.Storage Namespace .Основное преимущество заключается в том, что это направление будет работать при портировании на xbox360 практически без изменений в логике сохранения информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...