# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Спрайт. Первая форма |
|
|||
На этом уроке мы создадим форму, немножко её оформим, выберем для неё иконку. Далее напишем функцию, которая рисует на экране две линии. Спрайт - это графический объект, состоящий из линий и кругов. На этом уроке мы создадим графический редактор для спрайтов. Этот редактор мы будем использовать для создания «героев» игр. В каждой игре у нас будет несколько спрайтов, которые будут создаваться, двигаться, исчезать по правилам той или иной игры. Отчёт отправил: 9752. chokayes Выполнено за 5 час. 31 мин. [Показать отчёт] Научился: для рисования нам надо 4 элемента: огонь, воздух, вода и земля. ой, Bitmap, Graphics, Pen and PictureBox Сложности: -- |
|||||
2 | Спрайт. Структура для линии |
|
|||
На этом уроке мы создадим структуру для хранения линий, массив палитры цветов и массив линий. И перепишем программу, чтобы она это всё выводило на экран. Отчёт отправил: 9752. chokayes Выполнено за 29 мин. [Показать отчёт] Научился: может разнообразить тему используя Processing? Сложности: -- |
|||||
3 | Спрайт. Класс для графики |
|
|||
На этом уроке мы создадим класс Graph, куда перенесём всё хозяйство для рисования: структуру, графику, картинку, массив палитры. После этого создадим методы Draw() для рисования линий. Отчёт отправил: 9752. chokayes Выполнено за 39 мин. [Показать отчёт] Научился: все, что относится к рисованию перенесли в класс Graph. тема переклткается с курсом по Теории ООП Сложности: -- |
|||||
4 | Спрайт. Класс для Спрайта |
|
|||
На этом уроке мы создадим класс Sprite, в котором будут храниться все линии каждого спрайта. В этом классе будут методы для добавления линий, а также, самое главное, для сохранения и загрузки Спрайта из XML файла. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 36 мин. [Показать отчёт] Научился: классный урок. все по классике, в рамках ООП |
|||||
5 | Спрайт. Рисуем линии мышкой |
|
|||
На этом уроке мы начнём создавать редактор, наконец-таки. Использую мышку можно будет рисовать линии, которые будут добавляться в наш спрайт. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 55 мин. [Показать отчёт] Научился: Прикольно. От примитивных спрайтов до Unity ) Надо было еще ластик, сделать. |
|||||
6 | Спрайт. Панель инструментов |
|
|||
На этом уроке мы создадим панель инструментов с кнопками для переключения цвета, очистки экрана, отмены последнего действия. Отчёт отправил: 9752. chokayes Выполнено за 14 час. 2 мин. [Показать отчёт] Научился: Переделал метод отрисовки, чтобы рисовал за мышкой. Добавил компонент на форму, который показывает текущий цвет и сразу же столкнулся с тем. что по идее мы неправильно работаем с цветами, их у нас всего пять и они у нас выражены целыми числами, хочу переделать на Color, тогда не будет проблем полную палитру использовать, пока не стал заморачиваться. |
|||||
7 | Спрайт. Сериализация объекта |
|
|||
На этом уроке мы научимся сохранять и загружать объекты, используя технологию сериализации и десериализации. Отчёт отправил: 9752. chokayes Выполнено за 17 час. 29 мин. [Показать отчёт] Научился: научился сериализации, десериализации XML |
|||||
8 | Аполлон. Главные герои |
|
|||
На этом уроке мы озвучим правила игры Аполлон. Выясним, какие у нас будут главные герои. Твоё самостоятельное задание - нарисовать на бумаге внешний вид игры со всеми главными героями. Как ты это себе представляешь. Отчёт отправил: 9752. chokayes Выполнено за 4 час. 55 мин. [Показать отчёт] Научился: -- Сложности: Нарисовать Землю. |
|||||
9 | Аполлон. Законы физики |
|
|||
Корабль Аполлон прилуняется на Луну. На этом уроке мы рассмотрим упрощённую физическую модель этого процесса и выпишем все параметры и все формулы, которые будут управлять этим процессом. Отчёт отправил: 9752. chokayes Выполнено за 28 мин. [Показать отчёт] Научился: -- Сложности: -- |
|||||
10 | Аполлон. Плавное прилунение |
|
|||
На этом уроке мы допишем игру Аполлон. Свяжем класс логики с интерфейсом. Сделаем управление двигателем с помощью мышки. Добавим таймер, функцию отображения корабля. А также сообщение о конце игры и перезапуск игры. Отчёт отправил: 9752. chokayes Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: -- Сложности: -- |
|||||
11 | Спрайт. Рисуем Аполлона |
|
|||
На этом уроке мы переделаем программу, чтобы удобно было рисовать ломанные линии. Добавим фоновый рисунок для его обведения. И в конце концов нарисуем Землю, вид из Космоса. Задание: Научить программу рисовать ломанные и нарисовать Землю, поверхность Луны, Ракету, Работающие двигатели, маленькую звёздочку. Отчёт отправил: 9752. chokayes Выполнено за 1 час. 41 мин. [Показать отчёт] Научился: Оказывается просто поменяв местами цвета можно инвертировать картинку, что я и сделал. Мысль пришла когда мы выключили белый цвет, назначив ему прозрачность. Еще появилась идея создать "'эскизный цвет", потом сделать функцию, которая будет удалять его, или вообще отдельно какой-нибудь цвет, или делать его прозрачным, т.е. у нас как бы появляется слой, который мы можем включать, выключать. ) Сложности: сделал скриншот программы, а в программе спрайт не сохранил, закрыл программу. ( |
|||||
12 | Аполлон. Graph и Sprite на Луне |
|
|||
На этом уроке мы внедрим созданные спрайты в написанную игрушку. Для этого мы добавим проект два класса из прошлых уроков - класс Graph и Sprite. Затем напишем метод загрузки всех спрайтов, и выведем один из них на экран. Задание наладить работу программы с предыдущими классами и уметь загружать подготовленные спрайты. Отчёт отправил: 9752. chokayes Выполнено за 19 час. 48 мин. [Показать отчёт] Научился: произвели импорт классов из одной программы в другой. загурзили спрайт Луны |
|||||
13 | Аполлон. Финальное прилунение |
|
|||
На этом уроке мы изменим метод Draw таким образом, чтобы он принимал координаты размещения спрайта и его масштаб. Далее, напишем методы для отображения всех спрайтов. Подгоним значения, чтобы всё отображалось красиво. И запустим наконец-таки нашу красочную игру с посадкой корабля Аполлон на Луну. Ура! Отчёт отправил: 9752. chokayes Выполнено за 7 час. 44 мин. [Показать отчёт] Научился: Вывели все спрайты. Статичные спрайты можно было одним сделать. А так все супер! |
|||||
14 | Полуфинальный урок |
|
|||
Задание: Записать видео обзор игры Аполлон. Отчёт отправил: 9752. chokayes Выполнено за 20 час. 0 мин. [Показать отчёт] Научился: надо учиться покороче видео делать. Сложности: Забыл поставить HD для видео, поэтому качество не оч. Видеообзор: Tjgr3lmI4Sw |
|||||
15 | Домино. Правила игры |
|
|||
Мы начинаем создание Домино-Пасьянса. Костяшки домино перемешиваются и выстраиваются на столе в пирамидку, вверху одна костяшка, внизу семь штук. Верхние и нижние открываются. Отчёт отправил: 9752. chokayes Выполнено за 1 день 4 мин. [Показать отчёт] Научился: Так как домино нет. Решил его сделать программно. При инициализации формы создаем динамически 28 picturebox (это мы уже проходили) далее подгружаем пустую плашку в pictureBox и рисуем эллипсами кружочки. ) Разместил плашки в 4 ряда, код тоже позаимствовал из виселки, только там мы 33 кнопочки размещеали в 3 ряда. еще сделал функцию как мы делали с java, чтобы можно было сохранить форму в виде картинки, загуглил. Все сохраняет. ) Хотел распечатать, вырезать и поиграть, но до этото не дошел. ) Так что пройденные уроки пригодились еще как. Сложности: Пришлось повозиться с Graphics, сам затупил. Приобрел ценный опыт! Всегда делать картинки под размер контролла. Не надеяться на zoom и т.п. у меня из-за этого были проблемы. Вроде рисую в границах, а на самом деле, нет. Так как картинка больше чем PictureBox. Все в общем рисовало вкривь и вкось. Я весь код свой изуродовал пока искал в чем проблема. )) |
|||||
16 | Домино. Перемешиваем плашки |
|
|||
На этом уроке мы напишем метод Start (), который перемешает вся плашки домино. Далее, продумаем список всех необходимых методов для класса Domino и реализуем самые тривиальные из них. Отчёт отправил: 9752. chokayes Выполнено за 17 час. 57 мин. [Показать отчёт] Научился: Реализовали рандомное перемешивание плашек. Согласен с тем, что сразу все нельзя предусмотреть. |
|||||
17 | Домино. Динамическая пирамида |
|
|||
На этом уроке мы нарисуем пирамидку из доминошек. Для отображения каждой плашки используется Label. Label'ы мы будем создавать динамически, как в сказке. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 8 мин. [Показать отчёт] Научился: Так как у меня уже был ранее создан метод генерации костяшек на основе пустой плашки, просто использовал его. |
|||||
18 | Домино. Делегаты отображения |
|
|||
На этому уроке мы свяжем два класса - FormDomino и Domino через механизм делегатов. Наш делегат будет отвечать за отображение плашки. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 46 мин. [Показать отчёт] Научился: Делегаты - это сила! |
|||||
19 | Домино. Выбираем и убираем |
|
|||
На этом уроке мы допишем метод отображения плашки. Затем напишем важный метод OpenFreePlates(), чтобы после убирания старых плашек новые открывались. Закончим урок обработкой клика по каждой плашке - будем отмечать выделенные и убирать их, если сумма равна 12. Отчёт отправил: 9752. chokayes Выполнено за 7 час. 59 мин. [Показать отчёт] Научился: При выделении плашки меняю цвет кружочков. Еще сделал, чтобы можно было снять выделение. |
|||||
20 | Домино. Ура! Победа! |
|
|||
На этом уроке мы допишем пасьянс из Домино. Напишем методы IsWinner() и IsLooser(). Добавим метки для оповещения о результате игры и попытаемся наконец-таки разложить этот пасьянс. Не забудьте добавить эту программу в своё портфолио! Внимание! В конце видео можно посмотреть на весь код целиком. Отчёт отправил: 9752. chokayes Выполнено за 14 час. 21 мин. [Показать отчёт] Научился: Добили программу, добавив действия при проигрыше и выигрыше. |
|||||
21 | Спрайт. Рисуем плашки |
|
|||
На этом уроке мы будем рисовать плашки домино. Каждая состоит из двух частей, отдельно нарисуем восемь левых частей и столько же правых. Почему восемь? От пустышки до шестёрки, и оборотная сторона. Отчёт отправил: 9752. chokayes Выполнено за 23 час. 30 мин. [Показать отчёт] Научился: Для того, чтобы нарисовать плашки добавил возможность рисовать чисто горизонтальные линии и вертикальные. Пока сойдет, дальше посмотрим. |
|||||
22 | Домино. Отображение плашки |
|
|||
На этом уроке мы откроем проект Домино, добавим в него два класса - Graph и Sprite, и создадим метод для рисования плашки домино. Нам придётся, как и в Аполлоне, доработать методы Draw(). В конце урока мы загрузим файлы спрайтов в ресурсы и научим статический метод Load() загружать их их массива байт, из строки символов. Это добавление делать по желанию. Отчёт отправил: 9752. chokayes Выполнено за 22 час. 49 мин. [Показать отчёт] Научился: Внес некоторые изменения в программу для рисования спрайтов. Много изменений внес в классы Sprite и Graph. Сделал выбор цвета из системных цветов- 48шт. Столкнулся с проблемой сериализации вложенных объектов в xml. Т.е. цвет не сохранялся в Xml через Color.Цвет. Не стал заморачиваться, а сделал через сохранение свойства Name для конкретного цвета. Сделал возможность копирования последней нарисованной линии, изменения ее толщины и также ее перемещения по нажатию кнопок вверх, вниз, вправо, влево, что очень помогло при рисовании. По сути можно любую нарисованную линию отредактировать. Добавил отдельные режимы рисования строго горизонтальных и вертикальных линий. Была мысля еще реализовать вращение, но пока не стал делать. Еще добавил у свойства линий поля offsetX, offsetY, через которые можно сдвигать линии относительно исходной, т.е. применить клонирование спрайтов. Добавил метод зеракльной отрисовки спрайтов. |
|||||
23 | Домино. Двойной спрайт |
|
|||
На этом уроке мы создадим класс SpriteDomino, в котором будем хранить обе части плашки домино в виде спрайта. В этом классе будет конструктор и методы Open() / Hide(), которые будут пересоздавать спрайты по мере необходимости. Дальше нужно будет в классе Graph написать метод Draw() для рисования нашей доминошки и убедиться, что это всё работает. Отчёт отправил: 9752. chokayes Выполнено за 19 час. 13 мин. [Показать отчёт] Научился: Создали класс SpriteDomino. Написали методы по по открытию, закрытию плашек. Интересный подход. Интересно узнать ход мыслей другого человека. ) Сложности: не успел сдать отчет и опубликовать ссылку из-за глюков с Инетом |
|||||
24 | Домино. Анимация спрайта |
|
|||
На этом уроке мы создадим анимацию спрайтов. Для этого нам понадобится таймер, несколько переменных, и возможность стирания нарисованных спрайтов. Отчёт отправил: 9752. chokayes Выполнено за 19 час. 55 мин. [Показать отчёт] Научился: сделали анимацию, все круто |
|||||
25 | Домино. Подъём переворотом |
|
|||
На этом уроке мы реализуем ещё два вида анимации. 1. Выбор плашки, она будет "дрожать" на месте 2. Переворот плашки, она будет сжиматься и разжиматься. Отчёт отправил: 9752. chokayes Выполнено за 10 час. 32 мин. [Показать отчёт] Научился: Классная анимация. Особенно переворот плашки. Ну и дрожание плашки тоже супер. ) |
|||||
26 | Домино. Базовый класс Анимаций |
|
|||
На этом уроке мы наведём порядок в нашем проекте. Квинтессенцию анимации оформим отдельным классом - Animate. Уберём всё лишнее из класса Graph и основного модуля. И сделаем, чтобы всё заработало - пока статичное отображение спрайта через экземпляр класса Animate. Отчёт отправил: 9752. chokayes Выполнено за 14 час. 26 мин. [Показать отчёт] Научился: думаю стоило бы класс Animate объявить абстрактным и пустой виртуальный метод step, тоже сделать абстрактным |
|||||
27 | Домино. Три наследника Аниматора |
|
|||
На этом уроке мы реализуем все способы анимации через созадние классов наследников от Animate. У нас будет три класса: AnimateMove, AnimateMark и AnimateTurn. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 43 мин. [Показать отчёт] Научился: Создали наследников для аниматора. Полиморфизм - классная штука. Позволяет избежать разрастания кода в лапшу, а также достигать слабой связности. |
|||||
28 | Домино. Пирамида из анимашек |
|
|||
На этом уроке мы добавим ещё парочку виртуальных функций в базовый класс Animate, чтобы их можно было вызывать без явного указания типа. Но самое главное - мы создадим матрицу "анимашек", инициализируем её экземплярами базового класса и выведем это всё на экран в виде пирамиды. Отчёт отправил: 9752. chokayes Выполнено за 15 час. 29 мин. [Показать отчёт] Научился: после проождения курса попробую написать через абстрактные методы. |
|||||
29 | Домино. Rolling Stones |
|
|||
На этом уроке мы сделаем анимацию раскладывания всех плашек домино на столе. Для этого напишем метод RollDomino(), а ещё нам потребуется отлавливать момент, когда все доминошки уже выложены на стол. Для этого мы добавим поле string mode, чтобы в таймере отловить этот момент. Отчёт отправил: 9752. chokayes Выполнено за 19 час. 27 мин. [Показать отчёт] Научился: Анимация - это красиво. Настоящие спецэффекты. Можно даже мульты рисовать. ) Сделал, чтобы плашки заезжали с бочины. Все супер мне нравится, хоть немного и затянулся курс. Еще поменял цвет плашки. |
|||||
30 | Домино. Наведение порядка |
|
|||
На этом уроке мы наведём порядок на форме, избавимся от наследия Label [,], уберём ненужные методы. Потом, на 10-ой минуте мы приступим к открытию плашек на первом и последнем ряду пирамиды. Отчёт отправил: 9752. chokayes Выполнено за 49 мин. [Показать отчёт] Научился: Рефакторинг кода всегда был проблемой для меня. Написав программу было трудно себя заставить трогать работающий код, сейчас уже привыкаю по-немногу. ) Немного подтормаживает вся эта анимация со спрайтами. |
|||||
31 | Домино. Финальный аккорд |
|
|||
На этом уроке мы научим программу выбирать плашки по щелчку мышки, убирать с экрана верные пары, и сыграем несколько раз до полного успеха :) Отчёт отправил: 9752. chokayes Выполнено за 1 день 19 час. 21 мин. [Показать отчёт] Научился: Курс по домино, супер! Мне все понравилось. Его тоже стоит на Unity забацать, но не сейчас! Не охота такой курс под гребенку, как все другие. Хотелось бы более профессионально, чтобы сделали с дианическим созданием, оптимизацией спрайтов в Unity. |
|||||
32 | ФИНАЛЬНЫЙ урок |
|
|||
Задание: Записать видео обзор игры Пасьянс из домино. Отчёт отправил: 9752. chokayes Выполнено за 1 день 3 мин. [Показать отчёт] Научился: При создании домино еще больше проникся мощью ООП и полиморфизма. Получилась отличная площадка для оттачивания навыков рефакторинга. Курс в целом отличный! Все понравилось. Видеообзор: h4uhoVrBfok |
|||||
33 | VIP урок. Телефон по TCP/IP протоколу |
|
|||
На этом видеоуроке мы создадим три класса, которые удобно использовать для передачи данных между двумя компьютерами. Отчёт отправил: 9752. chokayes Выполнено за 20 час. 2 мин. [Показать отчёт] Научился: Уже проходил данный урок. Тема интересная и полезная. |
|||||
Итого: 33 видеоурока |
12 час. 26 мин. |
28 чел. | |||
Финалисты: Олюшка, Руслан, Екатерина, Иван, Андрей Поляков, Дмитрий, Елена, Ильшат, Фомичева Наталья, Александр, Владимир, Никита, Сергей Сергеевич, Артём, Мариша , Михаил Ермишин, Максим Лапшинов, Максим, Электрон, Tekashnik, Новопашин Владимир, Dimon, chokayes, Николай Денисов, Денис, Yefim, Кирилл, Anatoli . |