Курсы для программистов

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта

Хранитель экрана

11 уроков по созданию полноценного хранителя экрана.
На первых пяти уроках мы создаём анимацию геометрических фигур,
На последующих уроках добавляем
редактирование параметров,
их сохранение в реестре,
полноэкранный режим работы хранителя экрана,
создание предобзора и
установка собственноручносозданной заставки
в качестве системного хранителя экрана.

Основные темы, рассматриваемые на этом курсе:
-Инкапсуляция.
-Работа с реестром.
-Рисование в C#.
-Простые алгоритмы движения объектов.

Объём: 14 уроков.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 1200 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Создаём графику 00:28:12 122 чел. ★ 4.9 Done
  Первый урок.
Анализ проекта, создание формы, инициализация графики, рисование окружностей.

Отчёт отправил: 4780. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: 1) рисовать пиксель 2) Refactor->Extract Method 
Сложности: нарисовать 1 пиксель  
Комментарии: если нужно нарисовать именно ОДИН пиксель, то подойдет такая запись: graph.FillRectangle(brush, px, py, 1, 1); только надо предварительно создать кисть: Brush brush =(Brush)Brushes.Blue;  
2 Движение шарика 00:31:11 108 чел. ★ 4.9 Done
  Второй урок.
Добавление таймера, создание функции для изменения координат, реализация отскока шарика от краёв картинки, учёт размера кружка, стирание старого положения.

Отчёт отправил: 4780. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: 1) анимация движения посредством таймера формы и перерисовки объекта 2) алгоритм отскока шарика внутри прямоугольника 
Сложности: чтобы шарик отскакивал четко справа 
Комментарии: у меня условия для отскока справа: px+box_width+sx>=bmp.Width; py+box_height+sy >=bmp.Height; тоже работает нормально. 
3 Новый класс Graph 00:29:03 87 чел. ★ 4.9 Done
  Третий урок
Создание класса Graph и перенос в него всех действий с графикой.
Отчёт отправил: 4780. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: 1) разбивать код программы на разные классы для упрощения кода. 2) использовать рефакторинг 
Сложности: какие методы и свойства вынести из кода формы в класс Graph и как передавать данные между ними. 
Комментарии: хороший урок) 
4 Новый класс Figure 00:31:21 77 чел. ★ 4.9 Done
  Четвёртый урок
На этом уроке мы вынесем всю логику работы с координатами в отдельный класс Pixel и в конце добавим ещё одни шарик в наш "Хранитель экрана".

Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: 1) разделять функционал кода с вынесением методов в отдельный класс 
Сложности: рефакторинг кода: переопределение переменных и логики программы 
Комментарии: по идее для множества объектов типа Figure нужно создавать коллекцию объектов? 
5 Новый класс Polygone 00:30:58 69 чел. ★ 4.9 Done
  Пятый урок
На этом уроке мы закончим создание хранителя экрана.
Мы создадим класс Polygone для хранения многоугольника.
Также добавим в класс Graph метод для его рисования.
В результате получится забавный анимированный многоугольник + потенциал для дальнейшего развития программы.
Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: 1) использовать конструкции типа: public List
list { get; private set; } с добавлением в список собственных классов 2) отрисовывать перемещающиеся объекты, состоящие из множества точек 
Сложности: вращение точки для генерации пятиугольника 
Комментарии: отличный урок, правда под конец я уже немного запутался во всех созданных классах и методах, и их переопределениях) 
6 ПОЛУФИНАЛЬНЫЙ урок 00:23:23 45 чел. ★ 4.9 Done
  Задание:
Записать видео обзор созданного хранителя экрана.
Рассказать, понравился ли тебе курс, чему ты научился, что было самым сложным.

Отчёт отправил: 4780. Дмитрий Выполнено за 24 час. 00 мин. [Показать отчёт]
Научился: немного продвинулся в понимании работы ООП и функций, а также вложенных массивов 
Сложности: поиск логических ошибок в программе 
Комментарии: Так и не нашел ошибку, из-за которой после первого полного цикла полигоны начинают задесятеряться. Кроме этого при отрисовке возникают артефакты в виде точек на экране. В целом урок очень понравился, спасибо! 
Видеообзор: https://youtu.be/1pEtYYvKK8o
7 Форма настроек 00:23:24 38 чел. ★ 5 Done
  Шестой урок
На этом уроке мы создадим форму для выбора настроек нашего Хранителя экрана.
Можно будет выбрать цвет фона и цвет линий, а также количество вершин.
форма будет создана в новом классе Window Forms.
Отчёт отправил: 4780. Дмитрий Выполнено за 40 мин. [Показать отчёт]
Научился: использование ColorDialog 
Сложности: все было просто 
Комментарии: хорошо 
8 Применение настроек 00:29:52 38 чел. ★ 5 Done
  Седьмой урок
На этом уроке мы добавим кнопку Сохранения настроек
и сделаем применение выбранных параметров.
Для этого нам нужно будет организовать
передачу данных между формами.
Для применения всех настроек придётся дорабатывать
классы Graph и Figure, писать алгоритм
для добавления/удаления вершин
и создания случайной фигуры.
Придётся дорабатывать
Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: как организовать передачу параметров между формами приложения 
Сложности: адаптировать код под свою программу 
Комментарии: ^_^ 
9 Использование реестра 00:29:45 38 чел. ★ 5 Done
  Восьмой урок
На этом уроке мы будем сохранять параметры в реестре и считывать их оттуда.
Функции для работы с реестром вынесем в отдельный статический класс.
Сделаем считывание и сохранение всех трёх параметров:
цвет фона, цвет линий, количество вершин.
Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: записывать и считывать значения из реестра 
Сложности: сохранение цвета в реестре 
Комментарии: :) 
10 Параметры командной строки 00:22:41 36 чел. ★ 5 Done
  Девятый урок
На этом уроке мы узнаем,
как нужно управлять запуском стандартных хранителей экрана.
Какие параметры командной строки для этого используются.
Добавим анализ аргументов командной строки
в свою программу, в зависимости от которых
будем открывать либо настройки программы,
либо запускать хранитель экрана.
Отчёт отправил: 4780. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: запускать программу с параметрами 
Сложности: все было понятно 
Комментарии: :^) 
11 Полноэкранный режим 00:13:58 36 чел. ★ 5 Done
  Десятый урок
На этом уроке мы переделаем нашу заставку чтобы она работала в полноэкранном режиме.
Для этого уберём заголовок, установим аттрибут "поверх всех окон".
Создадим ещё один конструктор, которому будем передавать размеры основного экрана.
Отчёт отправил: 4780. Дмитрий Выполнено за 30 мин. [Показать отчёт]
Научился: устанавливать форму поверх всех окон 
Сложности: все было просто 
Комментарии: :) 
12 Режим предобзора и установка 00:25:51 36 чел. ★ 5 Done
  Одиннадцатый урок, последний
На этом уроке мы закончим создание хранителя экрана.
Сделаем самую сложную часть - вывод предобзора в окно вызвавшей программы.

Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: работа с WinAPI 
Сложности: dll , WinAPI 
Комментарии: заработало, даже удивительно 
13 ФИНАЛЬНЫЙ урок 00:23:23 32 чел. ★ 4.9 Done
  Задание
Высказать свой отзыв об этом курсе
записав видеообзор полученной программы.

Отчёт отправил: 4780. Дмитрий Выполнено за 30 мин. [Показать отчёт]
Научился: =) 
Сложности: ничего) 
Комментарии: =) 
Видеообзор: https://youtu.be/wrAr25O7krQ
14 VIP. Говорящие часы. Запись голоса 00:57:32 30 чел. ★ 5 Done
  На уроке создаём программу для записи звуковых файлов,
которые будут использованы для создания говорящих часов.
Отчёт отправил: 4780. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: 1. использовать библиотеку NAudio 2. использовать объект SoundPlayer sp = new SoundPlayer(path + audio_filename) 3. пример использования делегатов 
Сложности: здесь много новых технологий, это и библиотека NAudio и аудиоплеер и использование делегатов для работы с библиотекой. В общем, непростой пример, но очень функциональный. 
Комментарии: уже отправлял отчет после вебинара, то ли в чашке кофе, то ли где-то еще, уже не помню, - давно было. 
15 VIP. Говорящие часы. Воспроизведение 00:38:41 28 чел. ★ 5 Done
  На уроке пишем программу,
которая показывает и говорит текущее время
Отчёт отправил: 4780. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: 1. использование объекта DateTime и преобразование его данных к виду hh:mm:ss 2. использование отдельного класса для разделения функционалов формы и программы 3. ознакомился с многопоточностью на примере воспроизведения звуковых файлов 
Сложности: многопоточность и делегирование 
Комментарии: хорошая программа получилась, функциональная. 
  Итого:   15 видеоуроков общей продолжительностью 7 час. 19 мин. 14 чел. ★ 4.96  
  Финалисты:   Олюшка,   Денис,   Дмитрий,   Андрей Поляков,   Артём,   Permitin Alexey,   Валерий Жданов,   Алексей В.,   Станислав,   Tekashnik,   Иван Воронин,   Neverwinter 2,   Новопашин Владимир,   Александр .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Записывать видео обзор
Трудности: Записывать видео обзор
Придумал идею вип урока))) Соединить хранитель с графоциклами))) А вообще курс классный, особенно его вторая часть))


Трудности: Нарезвать видео, убрав все "ээээ" ))) Скрины не делаю - нафига... Следующим я наконец-то попробую wpf