Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Приходи на 3-дневный мастер-класс по C#

Игры со Спрайтами / Спрайт. Сериализация объекта

  • На этом уроке мы научимся сохранять и загружать объекты,
    используя технологию сериализации и десериализации.
  • Дата отправки отчёта: 14 октября 2015 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: Сохранять векторный рисунок в XML-формате
  • Что было сложным: найти ошибку, из-за которой не загружался файл.
  • Комментарии: XML - удобный формат для хранения векторных изображений. Поразительно, что даже удаление последних линий срабатывает после загрузки.
  • Оценка видео-уроку:
Отчёт от 4004 за Игры со Спрайтами / Спрайт. Сериализация объекта




Оцени работу

 
Сохранить страницу:

6203. Николай (nick27m)
Николай (nick27m)
ответить
→  Елена  # Игры со Спрайтами / Спрайт. Сериализация объекта / 2016-06-27 22:54

Здорово. А у меня проблема возникла. Загрузка и сохранение работают, но спрайт почему-то не отображается, уже не первый день мучаюсь.


24. Олюшка
Олюшка
ответить
→  Елена  # Игры со Спрайтами / Спрайт. Сериализация объекта / 2015-10-14 21:39

Елена, ура, дождалась своего желаемого урока и отлично с ним справилась! Елена, здорово что все работает и ты понимаешь этот процесс, и классно что ты удивляешься - это отлично, развивай это чувство, оно жизнь делает более увлекательной и радостной! :)


2146. Иван
Иван
ответить
→  Елена  # Игры со Спрайтами / Спрайт. Сериализация объекта / 2015-10-14 19:56

Здорово получается! Вот уже вроде и понимаешь, как тут все работает, но когда все это работает, все равно остается чувство удивления.(Это я про свои чувства)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Елена  # Игры со Спрайтами / Спрайт. Сериализация объекта / 2015-10-14 17:48

Удивительно, но ... логично :)
Ведь экземпляр объекта полностью восстанавливается.


  • Отчёт оценивали:
    6885lomik+1   7036Рома Дячук+1   6509Степан Фендьо+1   3747Сергей+1   1Евгений Волосатов+1   1947Denis+1   6195sergey+1   6452Кирилл Шмойлов+1   7303Игорь+1   689Igorenzia+1   2146Иван+1   6919Anton Sozykin+1   7308AZANIR+1   459Сергей Сергеевич+1   4692Михаил+1   6696Владимир Борисенко+1   5026Екатерина+1   24Олюшка+1   7389Кузьмин Кирилл+1   7541Максим+1   6203Николай (nick27m)+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: серализацией и десриализацией.
Трудности: в принципе ничего сложного в этом нет, как могло казаться раньше
все отлично
Научился: Сохранять в XML файл и загружать из него с помощью XML сериализации.
Трудности: У меня при загрузке возникла проблема, не отображался спрайт, ошибка оказалась в обработчике события при клике мышкой, т.к. я делал по-своему, при клике мышки у меня рисовалась ломаная линия, а при двойном щелчке линия перестает рисоваться. Проблема была в том, что в координаты x1,x2 и y1,y1 сохранялись одинаковые значения, ошибку исправил таким образом: private void picture_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (curLine.x1 == -1) { curLine.x1 = e.X; curLine.y1 = e.Y; } else { curLine.x2 = e.X; curLine.y2 = e.Y; sprite.AddLine(curLine); curLine.x1 = curLine.x2; curLine.y1 = curLine.y2; } return; } }
Немного покороче написал метод Save() public void Save(string filename) { try { XmlSerializer xml = new XmlSerializer(typeof(Sprite)); XmlWriter writer = XmlWriter.Create(filename); xml.Serialize(writer, this); } catch { } } Еще вы забыли добавить блок Try,Catch. Спасибо за урок!