Другие языки программирования и технологии
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");
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");
Дмитрий Бушманов
Огромное спасибо!!!)))
>Мне нужен пример кода))
Game.LoadFromFile(sFileName);
Весь остальной код кроме тебя никто не напишет.
Game.LoadFromFile(sFileName);
Весь остальной код кроме тебя никто не напишет.
Дмитрий Бушманов
Я не прошу за меня код писать. я прошу чтобы мне показали примерный код сохранения игры C#
Нужно найти все переменные, которые отвечают за текущее состояние игры и сохранять их значения в файл при сохранении игры.
При загрузке игры, нужно присвоить значения этим переменным значения из файла.
При загрузке игры, нужно присвоить значения этим переменным значения из файла.
Дмитрий Бушманов
Я это и так знаю, только вот как это все прописать...
Для этого тебе нужно значения всех используемых в рабочем цикле программы переменных сохранить в нетипизированный бинарный файл. В каком порядке записала - в таком же потом и считывай при загрузке сохранения.
Дмитрий Бушманов
Я это и так знаю, только вот как это все прописать...
Нужно знать всё игровое состояние.
Где какие объекты находятся, сколько очков и т. д.
Всё это сохраняешь в любом удобном виде, обычно в двоичном виде сохраняют чтоб отредактировать не могли сохранялку.
Потом просто, при нажатии на кнопку Load надо загрузить ресурсы и игровое состояние, и установить позиции всех объектов на старые места.
Где какие объекты находятся, сколько очков и т. д.
Всё это сохраняешь в любом удобном виде, обычно в двоичном виде сохраняют чтоб отредактировать не могли сохранялку.
Потом просто, при нажатии на кнопку Load надо загрузить ресурсы и игровое состояние, и установить позиции всех объектов на старые места.
Как это ни странно, но для того, чтобы сделать сохранение, сначала нужно сделать загрузку, точнее сброс к начальному состоянию.
Начните с простого - организуйте в игре режим паузы, чтобы можно было пристановить время и отрисовку. Следующий этап реализация сброса параметров к началу игры. В режиме паузы нужно установить все (или почти все) внутренние переменные в значения перед началом игры.
Реализовав сброс в начало игры, вы поймёте ЧТО ИМЕННО вам нужно сохранять в файле. Останется только погуглить "сериализация в С#" и уже определенные переменные можно будет кидать в поток и восстанавливать из него. Возможно придётся все сохраняемые переменные перенести в один класс, или сделать специальный класс для сохранения/восстановления.
Начните с простого - организуйте в игре режим паузы, чтобы можно было пристановить время и отрисовку. Следующий этап реализация сброса параметров к началу игры. В режиме паузы нужно установить все (или почти все) внутренние переменные в значения перед началом игры.
Реализовав сброс в начало игры, вы поймёте ЧТО ИМЕННО вам нужно сохранять в файле. Останется только погуглить "сериализация в С#" и уже определенные переменные можно будет кидать в поток и восстанавливать из него. Возможно придётся все сохраняемые переменные перенести в один класс, или сделать специальный класс для сохранения/восстановления.
Похожие вопросы
- Как сделать, чтобы при запуске игры World of tanks, игра не запускалась, а появлялось сообщение: Иди книгу почитай!
- C#. Как сделать, чтобы программа проверяла тип введённой переменной?
- Я делаю сайт.Подскажите,как сделать ,чтоб картинку не могли сохранить?подробнее-В ПОЯСНЕНИЯХ! помогите
- Правда ли что на C++\C# можно сделать все что угодно, от простенькой утилиты до целой оси?
- C# C++ Как сделать, чтобы при появлении форма раскручивалась в центре экрана.(подскажите алгоритм)
- Я хочу сделать свою игру, но не умею рисовать, что делать?
- Как сделать так чтобы при запуске ОС вместо слова "ПРИВЕТСВИЕ" была моя надпись ? =)
- Как сделать 3d игру?
- На каких программах делают игры? Хочу сделать свою игру, и хочу узнать, что на каких программах и языках делают игры?
- Сделал фотку в фотошопе CS5,сохранил в фотмате IPEG,а для печати визитки нужен формат Corel Draw...