На этом уроке мы создадим новый класс - Sprite, в котором будет хранится список всех фигур, из которых строится графический объект, чтобы в основной программе мы могли оперировать сразу спрайтами, а не их составными элементами.
Дата отправки отчёта:
16 мая 2017 г.
Задание выполнено: за
10 мин.
Чему научился:
Создавать сложные фигуры из примитивов _более правильным_ способом через коллекции.
Что было сложным:
Понимание SetGraphics при создании фигуры и при добавлении в коллекцию.
Комментарии:
Я так и не понял, зачем 2 раза делать public void AddShape(Shape shape) { shape.SetGrapphics(graph); shapes.Add(shape); }
и
snowman2 = new Sprite(); snowman2.SetGrapphics(graph);
Закомментировал snowman2.SetGrapphics(graph); Выходит исключение, что ресурс graph пустой в этой функции. override public void Draw() { graph.DrawEllipse( pen, corner.x, corner.y, width, hight); }
Выходит это для каждого примитива создается ресурс graph со своими настройками, линия там или круг, красный или зеленый. Но как по мне, то в основной инициализации snowman2 = new Sprite(); snowman2.SetGrapphics(graph); вторая строка лишняя. Оно должно быть скрыто и инициализироваться автоматом при создании примитива.
Вобщем пока упрощали, то опять все усложнилось так, что забыли что и зачем нужно. (типа тут смайлик) Посмотрим, что там дальше будет. Может в следущих уроках как раз моя идея будет реализована.
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: пример класса: при первичной инициализации пустой список, с возможностью добавления элементов Трудности: с методом SetGraphic подзапутался, в каких местах вызывать... все ок
Научился: 1. Объект класса List<> - коллекция, он же список с изначально неопределенным количеством элементов в нем;
2. Foreach - ключевое слово переключения/перехода по элементам коллекции;
3. Перегрузка Draw() в коллекции.