Другие языки программирования и технологии

C# Как сделать сохранение игры и запуск сохраненной игры?

Делаю курсовик C# Windows Forms игра " Змейка" осталось сделать кнопку сохранения и запуск сохраненной игры.... Напишите пожалуйста код как это сделать))) Ответ: поищи в гугле (искала 2 дня ни чего не нашла)
Можно вынести все параметры в отдельный класс, установить ему атрибут Serializable, и использовать сериализацию в XML. Примерно так:

using System.Xml.Serialization;

[Serializable]
public class GameData
{
// параметры хранятся в полях класса:
public int Level;
public int Difficulty;
// и т. д. ..

// метод который сохраняет этот объект в файл:
public void Save(string filename)
{
XmlSerializer xml = new XmlSerializer(typeof(GameData));
Stream file = new FileStream(filename, FileMode.OpenOrCreate);
xml.Serialize(file, this);
file.Close();
}

// метод который загружает объект из файла:
public static GameData Load(string filename)
{
XmlSerializer xml = new XmlSerializer(typeof(GameData));
Stream file = new FileStream(filename, FileMode.Open);
object obj = xml.Deserialize(file);
file.Close();
return (GameData)obj;
}
}

Использовать так:

// загрузка:
GameData data = GameData.Load(@"C:\gamedata.xml");
// сохранение:
data.Save(@"C:\gamedata.xml");
Nurik Кадырбаев
24 295
Лучший ответ
Дмитрий Бушманов Огромное спасибо!!!)))
>Мне нужен пример кода))

Game.LoadFromFile(sFileName);

Весь остальной код кроме тебя никто не напишет.
Кирилл Прищепа
Кирилл Прищепа
51 545
Дмитрий Бушманов Я не прошу за меня код писать. я прошу чтобы мне показали примерный код сохранения игры C#
Нужно найти все переменные, которые отвечают за текущее состояние игры и сохранять их значения в файл при сохранении игры.
При загрузке игры, нужно присвоить значения этим переменным значения из файла.
Дмитрий Бушманов Я это и так знаю, только вот как это все прописать...
Для этого тебе нужно значения всех используемых в рабочем цикле программы переменных сохранить в нетипизированный бинарный файл. В каком порядке записала - в таком же потом и считывай при загрузке сохранения.
Artur Isxakoff
Artur Isxakoff
31 768
Дмитрий Бушманов Я это и так знаю, только вот как это все прописать...
Нужно знать всё игровое состояние.

Где какие объекты находятся, сколько очков и т. д.
Всё это сохраняешь в любом удобном виде, обычно в двоичном виде сохраняют чтоб отредактировать не могли сохранялку.

Потом просто, при нажатии на кнопку Load надо загрузить ресурсы и игровое состояние, и установить позиции всех объектов на старые места.
Дима Кунах
Дима Кунах
30 074
Как это ни странно, но для того, чтобы сделать сохранение, сначала нужно сделать загрузку, точнее сброс к начальному состоянию.

Начните с простого - организуйте в игре режим паузы, чтобы можно было пристановить время и отрисовку. Следующий этап реализация сброса параметров к началу игры. В режиме паузы нужно установить все (или почти все) внутренние переменные в значения перед началом игры.

Реализовав сброс в начало игры, вы поймёте ЧТО ИМЕННО вам нужно сохранять в файле. Останется только погуглить "сериализация в С#" и уже определенные переменные можно будет кидать в поток и восстанавливать из него. Возможно придётся все сохраняемые переменные перенести в один класс, или сделать специальный класс для сохранения/восстановления.
Сергей Лигай
Сергей Лигай
11 112

Похожие вопросы