На этом уроке мы внедрим созданные спрайты в написанную игрушку. Для этого мы добавим проект два класса из прошлых уроков - класс Graph и Sprite. Затем напишем метод загрузки всех спрайтов, и выведем один из них на экран.
Задание наладить работу программы с предыдущими классами и уметь загружать подготовленные спрайты.
Дата отправки отчёта:
2 июня 2015 г.
Задание выполнено: за
не указано
Чему научился:
Создавать dll
Что было сложным:
Вносить изменения, приходилось постоянно между тремя проектами крутиться, чтоб все работало.
Комментарии:
Решил я выпендриться и был наказан затратой кучи времени)
Так как я спрайты сериализовал в бинарные фйлы, то возникла новая неожиданность. Нельзя сериализовать класс, описанный в одной программе, а десериализовать в класс, описанный в другой программе, даже если эти классы совпадают по реализации. Т.е. сериализуемый класс должен быть вынесен в отдельную сборку, попросту говоря в dll, и уже его подключать в программу где сериализуешь и его же подключать где десериализуешь.
Пришлось делать то, о чем я уже говорил раньше. Класс, с описанием фигуры и реализацией его прорисовки (класс Graff), я вынес в dll. Теперь я могу эту dll всовывать в любую прогу где надо выводить наши спрайты, без всякого копипаста кода.
Ну а так как я настраивал dll, решал, что именно там должно быть, менялось описание самого класса, то постоянно приходилось копировать dll то в прогу Sprite, то в Apollon. Потому что небольшое испарвление в классе dll и десериализовать предыдущую картинку уже не хотело. Вобщем я спрайты на Аполлон рисовал 4 раза))
Ну зато теперь совсем просто! В любую игру, где мы будем работать с нашими рисованными спрайтами, можно просто указать ссылку на нашу dll и вся реализация нам доступна: десериализация спрайта из файла, методы его отрисовки.
Устаревшая - да, не оправдавшая надежд - да, но изжившая - нет. Какие на данный момент есть альтернативы повторного использования кода? Какие программные продукты не используют dll или что они используют в замен? COM устарел, вот его точно никто сейчас не использует в новых продуктах, поддерживают старые, но в новые продукты не внедряют. В любом случае dll все еще позволяет поддерживать модульность, возможность обновлять продукт модульно, возможность один модуль использовать несколькими программами.
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Получилось.!!!
Хотите прикол? Нарисовал Луну черным цветом и вставляю на черный фон и думаю: "Почему ничего не работает?"
Весь мозг вынес, случайно решил поменять на другой спрайт и вот чудо - отобразилось.