# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Первый урок. Анализ проекта, создание формы, инициализация графики, рисование окружностей. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Так как эллипс размером 16, то сделал смещение в половину (8), чтобы круг рисовался вокруг кончика курсора. |
|||||
2 | Движение шарика |
|
|||
Второй урок. Добавление таймера, создание функции для изменения координат, реализация отскока шарика от краёв картинки, учёт размера кружка, стирание старого положения. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Подобное реализовывалось при прохождении других курсов, поэтому сложным не было, практика лишней не бывает =) |
|||||
3 | Новый класс Graph |
|
|||
Третий урок Создание класса Graph и перенос в него всех действий с графикой. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 03 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Создал публичные функции для очистки и инициализации ручек, чтобы не инициализировало дважды. Теперь после создания экземпляра graph, вызываем в необходимой последовательности созданные функции. Инициализации и последующей очистки поля с новыми параметрами цвета. Может быть стоит объединить их воедино и просто при вызове graph.Clear() проводить инициализацию, так как всё равно очищаем поле, но тут фишка в том, что если нам просто нужно очистить поле с текущими параметрами, вызов только очистки намного быстрее, чем ещё напрягать лишними телодвижениями, если при этом цвета не менялись. |
|||||
4 | Новый класс Figure |
|
|||
Четвёртый урок На этом уроке мы вынесем всю логику работы с координатами в отдельный класс Pixel и в конце добавим ещё одни шарик в наш "Хранитель экрана". Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 03 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Заменил лишние переменные одним списком фигур. Добавил три фигуры разной формы и направления движения. Сделал два скриншота, на одном из которых не очищен фон во время инициализации поля, чтобы было видно траектории передвижения фигур. Поле размера фигуры сделал публичным, чтобы можно было сразу добавлять в список создаваемый экземпляр с указанием необходимых параметров. |
|||||
5 | Новый класс Polygone |
|
|||
Пятый урок На этом уроке мы закончим создание хранителя экрана. Мы создадим класс Polygone для хранения многоугольника. Также добавим в класс Graph метод для его рисования. В результате получится забавный анимированный многоугольник + потенциал для дальнейшего развития программы. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 05 мин. [Показать отчёт] Научился: Закрепил пройденное Сложности: найти время Комментарии: Замыкание последней точки с первой реализовал сам, а уже в конце видео увидел как это реализовал Игромистр, оставил свой вариант, плюс проверяется, равны ли точки, если да. то не отрисовывать между ними линию. з.ы. Ушло много времени на эксперименты. =) |
|||||
6 | ПОЛУФИНАЛЬНЫЙ урок |
|
|||
Задание: Записать видео обзор созданного хранителя экрана. Рассказать, понравился ли тебе курс, чему ты научился, что было самым сложным. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Закрепил пройденное, повторил тригонометрию. Сложности: найти время Комментарии: Решил реализовать пятиконечную звезду, которая была доп. заданием со звёздочкой в одном из прошлых уроков. Сделал набросок в тетради, не самый идеальный в плане симметрии, но в данном случае это было не важно, так как задача была в том, чтобы вычислить относительные координаты, по которым будет строиться звезда. Отличный курс, замечательная идея реализации Хранителя экрана, ещё в 9х годах подобные вещи завораживали детские умы. Видеообзор: TOaG7Tuoh6k |
|||||
7 | Форма настроек |
|
|||
Шестой урок На этом уроке мы создадим форму для выбора настроек нашего Хранителя экрана. Можно будет выбрать цвет фона и цвет линий, а также количество вершин. форма будет создана в новом классе Window Forms. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: ColorDialog Сложности: найти время Комментарии: Отличный урок, работа с новым компонентом WF в копилку =) |
|||||
8 | Применение настроек |
|
|||
Седьмой урок На этом уроке мы добавим кнопку Сохранения настроек и сделаем применение выбранных параметров. Для этого нам нужно будет организовать передачу данных между формами. Для применения всех настроек придётся дорабатывать классы Graph и Figure, писать алгоритм для добавления/удаления вершин и создания случайной фигуры. Придётся дорабатывать Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 45 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал добавление/удаление вершин многоугольника через класс Polygone(). Добавил в настройки выбор толщины линий. Реализовал отмену через закрытие настроек по крестику. Генерация рандомного направления движения реализовано через цикл, исключающий значение равное 0. Отличный урок, позже планирую добавить ещё настроек =) |
|||||
9 | Использование реестра |
|
|||
Восьмой урок На этом уроке мы будем сохранять параметры в реестре и считывать их оттуда. Функции для работы с реестром вынесем в отдельный статический класс. Сделаем считывание и сохранение всех трёх параметров: цвет фона, цвет линий, количество вершин. Отчёт отправил: 10558. Иван Воронин Выполнено за 53 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный урок, правда TryParse уже в себе имеет проверку и его не нужно проверять через if, задаётся начальное значение переменной и если TryParse удался, то он его меняет, если нет, не меняет и вручную это делать не нужно. Так же сразу бросилось в глаза использование цикла для добавления вершин в полигон после загрузки настроек из реестра. Ведь у нас уже имеется для этого функция AddPoints(), которую написали на прошлом уроке, как раз идеально подходит для этого, ведь после инициализации полигона там количество равное 0, а любое значение, которое взяли из реестра будет более 0, значит именно AddPoints() отлично подходит. |
|||||
10 | Параметры командной строки |
|
|||
Девятый урок На этом уроке мы узнаем, как нужно управлять запуском стандартных хранителей экрана. Какие параметры командной строки для этого используются. Добавим анализ аргументов командной строки в свою программу, в зависимости от которых будем открывать либо настройки программы, либо запускать хранитель экрана. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Узнал о ключах /s /c для скринсейверов. Сложности: найти время Комментарии: Отличный урок, как то ранее не задавался вопросом, как работаю скринсейверы, но узнав о стандартных ключах, стало всё на свои места. Спасибо. з.ы. Добавил ещё параметров для скринсейвера: ползунок для установки скорости анимации, галочки для выбора, какие объекты будут отрисовываться на экране. |
|||||
11 | Полноэкранный режим |
|
|||
Десятый урок На этом уроке мы переделаем нашу заставку чтобы она работала в полноэкранном режиме. Для этого уберём заголовок, установим аттрибут "поверх всех окон". Создадим ещё один конструктор, которому будем передавать размеры основного экрана. Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал изменение размеров формы и использовал док фил для автопилота, так же центр скрин не трогал, очень даже красиво справляется со своей задачей, см. скриншот. |
|||||
12 | Режим предобзора и установка |
|
|||
Одиннадцатый урок, последний На этом уроке мы закончим создание хранителя экрана. Сделаем самую сложную часть - вывод предобзора в окно вызвавшей программы. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Повторил пройденное (в курсе сапёра проходили подобное, когда бота писали) Сложности: найти время Комментарии: Добавил динамическое вычисление размеров объектов, чтобы и на превью и на весь экран было более адекватный размер. Данные WinAPI функции использовали уже в курсе Сапёра на C#, когда писали бота, который вычислял размеры окна игры, то данный урок был повторением в данном вопросе, что касается параметров запуска, я их тоже реализовал через Split(), как говорится, малоли, координаты двоеточия могут измениться =) Отличный урок, по поводу не вызванного конструктора, ждал до последнего, думал будет ход финтом, но нет, решили вынести всё во вспомогательную функицю и вызвать опять первоначальный конструктор, тоже вариант, но я думал будет определения размеров и вызов промежуточного конструктора, передав его необходимые резмеры, так как он уже в своём случае вызывает базовый конструктор. |
|||||
13 | ФИНАЛЬНЫЙ урок |
|
|||
Задание Высказать свой отзыв об этом курсе записав видеообзор полученной программы. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Закрепил пройденное Сложности: найти время Комментарии: Добавил настройки типов объектов: Круг, Квадрат, Полигон(Многоугольник), Звезда. Добавил настройку толщины линий. Добавил настройку скорости анимации. Добавил настройку количества следов шлейфа за объектами (использовал Queue). Добавил настройку переливающихся цветов (реализовал свитч для анимации). Последние две настройки реализовал за 1 час и 45 минут, специально для Финального урока. Отличный курс, всем советую, очень много полезной информации и практики даёт. Видеообзор: 15Bpn0MZ6h8 |
|||||
14 | VIP. Говорящие часы. Запись голоса |
|
|||
На уроке создаём программу для записи звуковых файлов, которые будут использованы для создания говорящих часов. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: NAudio Сложности: найти время Комментарии: Оптимизировал количество файлов, их получилось 36. Реализовал круглый лейбл, на который надо наводить и говорить. Библиотеку скачал и установил через NuGet. Отличный урок, очень понравился, всё коротко и ясно. з.ы. делал урок в два этапа, так как началась школьная пора, то подобные блинные уроки с первого захода времени не хватает, пришлось разбить по времени на 1,5 часа и 1 час позже, в сумме вышло 2,5 часа. |
|||||
15 | VIP. Говорящие часы. Воспроизведение |
|
|||
На уроке пишем программу, которая показывает и говорит текущее время Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Закрепил запись с микрофона Сложности: найти время Комментарии: Реализовал оптимизированный список необходимых файлов. Реализовал функции с общей озвучкой чисел. Объединил формы записи голоса и часов в одной программе. Добавил меню, через которое можно вызывать запись голоса. Используется один общий массив файлов для записи и воспроизведения. Реализовал озвучку секунд. Реализовал воспроизведение каждый час. При открытии записи голоса, основное окно скрывается. При закрытии окна записи голоса высвобождаются ресурсы и отображается основная форма. Отличные вип уроки, очень понравились, ребёнок в восторге. |
|||||
Итого: 15 видеоуроков |
7 час. 19 мин. |
17 чел. | |||
Финалисты: Олюшка, Денис, Дмитрий, Андрей Поляков, Артём, Permitin Alexey, Валерий Жданов, Алексей В., Станислав, Tekashnik, Иван Воронин, Neverwinter 2, Новопашин Владимир, Александр, Yefim, superGrover, MaxB . |