# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
5 тестов |
|||
Создаём старую добрую игру Арканоид. Создаём меню, рисуем уровень, размещаем ракетку. Делаем, чтобы ракетка двигалась. Отчёт отправил: 10080. FireWolf Выполнено за 16 дней 14 час. [Показать отчёт] Научился: Делал в WPF, так что решил, зачем мне картинка из инета, если можно сделать анимированную заставку прямо так? ))) Сделал 6 кирпичиков и поместил их в ResourceDictionary откуда или подтягиваю их свойства по таймеру со смещением для анимации заставки или заполняю по координатам для игрового поля. Ракетку двигаю по таймеру, запускаемому с нажатием клавиш лево/право и останавливаю по событии отпускания клавиш лево/право. Ещё использую фишку из C# 7.0 с дополнительными условиями фильтрации в switch - полезно для раскраски кирпичей в пределах определённых координат. Если интересно, то по ссылке https://drive.google.com/drive/folders/0B3ZnPiwGG8zpSVpXdmNsWndmSGM лежит архив Arkanoid.rar Сложности: Сложным было прочитать, что словарь ресурсов надо ещё вписать в App.xaml ))) Видеообзор: 36rgXjFy7bI |
|||||
2 |
![]() |
3 теста |
|||
Делаем движение шарика, отскок его от стен и ракетки, а также выбивание кирпичиков.
Отчёт отправил: 10080. FireWolf Выполнено за 17 дней 8 час. [Показать отчёт] Научился: Делал в WPF, так что научился двигать шарик высчитывая координаты и назначая новые для его положения в Canvas. Также научился пользоваться Dictionary, в который внёс смещения для 8 углов шарика относительно его Canvas.Left и Canvas.Top с ключами по enum, чтобы не запутаться от каких углов в каких направлениях делать проверку столкновения и делал проверку столкновения по левому верхнему углу с примевлением смещения из Dictionary в зависимости от направления движения шарика. Ещё научился работать с углами и внёс небольшой рандомизатор отскока шарика. Сложности: Так как я хотел попробовать сам и сделать сразу универсальный способ, то специально не смотрел урок до конца и прошёл через несколько вариантов, начиная от самого простого с углом в пределах 0-90, вычислением смещения через Sin и Cos, указанием направления через enum (отличный простой способ для отскока от границ, но требует много преобразований для проверки пересечения граней кирпичиков) и вычислением пересечения через вычисление гипотенузы через исходное положение шарика и перпендикуляра к грани, до более универсального с Sin и Cos от углов в пределах 0 +- 360 и вычислением пересечения через перемножение векторов. Если интересно, то архив Arkanoid.rar доступен по ссылке https://drive.google.com/open?id=0B3ZnPiwGG8zpSVpXdmNsWndmSGM Код проверки столкновений у меня там не оптимизирован, а вот реализация градиента на кирппичиках в WPF может кому-то пригодиться :) Видеообзор: MWa-5SHSI8Y |
|||||
3 | Скорость реакции. Блок-схема |
|
|||
На этом уроке мы составим блок-схему для игры по вычислению скорости реакции. Нам потребуются три картинки, листик и ручка. Отчёт отправил: 10080. FireWolf Выполнено за 1 день 1 час. 4 [Показать отчёт] Научился: Научился составлять блок-схемы :) Сначала начал описывать подробно, но схема получилась трудночитаемой, так что я убрал ненужный для алгоритмической схемы мусор вроде скобок методов и их точных цепочек вызоваю Сложности: Нарисовать схему, что же ещё? :) |
|||||
4 | Скорость реакции. Три картинки по таймеру |
2 теста |
|||
На этом уроке мы подготовим форму для программы. Установим иконку, разместим три картинки, кнопку запуска. Напишем демо-код для переключения картинок. Отчёт отправил: 10080. FireWolf Выполнено за 11 час. 54 мин. [Показать отчёт] Научился: Тут всё просто и понятно, хотя я и делал в WPF. Предыдущие уроки были сложнее :) Сложности: Ничего :) Вот в применённых мною расчётах траектории шарика через тригонометрию и проверки столкновений в Арканоиде был хардкор, а тут даже придумать что-то этакое для добавки челленджа не выходит :( |
|||||
5 | Скорость реакции. Алгоритм и рекорд |
2 теста |
|||
На этом уроке мы наконец-таки создадим программу вычисления скорости реакции, следуя блок-схеме. Напишем обработчик кнопки "Запуск", кликов по картинкам и таймера. Даже добавить прогресс-бар для наглядности. Отчёт отправил: 10080. FireWolf Выполнено за 7 час. 59 мин. [Показать отчёт] Научился: Так как делал в WPF, то пытался добавить анимацию прогресс бара и изменение градиента кнопки старта при наведении и нажатии, но для этого надо переписать шаблоны используемых контролов, что требует больше XAML кода, чем вся логическая часть программы! (И всё равно не заработало! Но, надеюсь, когда-нибудь раздберусь и в этом.) Сложности: Если не считать тщетные попытки в эффекты и анимацию WPF, то всё остальное вообще проще простого :) |
|||||
6 | Игра Цифры |
3 теста |
|||
На этом уроке мы напишем игрушку «Цифры». Познакомимся с компонентом MenuStrip, и приручим кучу кнопок. Параллельно воспользуемся конструкцией языка switch - case. Задание: Создать программу с 9 кнопками, которые нужно нажимать по порядку. P. S. Рекомендую почитать: https://ru.wikipedia.org/wiki/Таблица_Шульте Отчёт отправил: 10080. FireWolf Выполнено за 28 дней 22 час. [Показать отчёт] Научился: Делать на WinForms мне показалось слишком скучно и я сделал под Android. Разумеется под Android не стал делать кнопки "Выход" :) А в остальном всё-то же самое. Сложности: 1) Сделать одинаковые кнопки в GridLayout - а мне раньше WPF казался неочевидным и переусложнённым! 2) Заставить отображаться меню - если компилировать под версии Android старше 7.0, то там для просто отображения меню есть официальный костыль(!). Скомпилировал под 5.1 и всё заработало :) Видеообзор: n-kL9trbPpM |
|||||
7 | Бот для Цифр |
2 теста |
|||
На этом уроке мы напишем бота для игры из прошлого урока. Мы научим мышку быстро щёлкать по кнопкам программы из прошлого урока. Задание: Написать бота для игры из прошлого урока. Придумать, для чего можно использовать эту программу. Отчёт отправил: 10080. FireWolf Выполнено за 5 дней 58 мин. [Показать отчёт] Научился: Научился импортировать функции из user32.dll. Так как делал в WPF, то научился справляться с очередными сложностями создания и отображения интерфейса :) Научился синхронизировать скроллинг 2-х TextBox и создавать отсутствующий в WPF NumericUpDown из TextBox и ScrollBar :) Ещё я всё-таки сделал запись координат в List, чтобы не гонять туда-сюда преобразования из string в int. вдобавок создал структуру для целочисленной точки, чтобы хранить координаты в int, а не в double и делать преобразование один раз при получении координаты курсора. Теоретически надо добавить таймер и произвольную задержку между нажатиями и уже можно сделать бота, полезного для... не знаю для чего, но полезного :) Испытывал на игре в цифры, которую я делал по предыдущему уроку, но только под Андроид :) Сложности: Отследить ошибку, связанную с назначением текста при запуске программы по событию в Контрол, который сам ещё не инициализирован :) Ещё хотел сделать запись координат в TextBlock, но там слишком изощрённое создание скроллбара, так что я сделал TextBlock и запретил редактирование :) Видеообзор: BYMqjZfmI9o |
|||||
8 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание. Записать видеообзор любой своей программы. Отчёт отправил: 10080. FireWolf Выполнено за 30 дней 53 мин. [Показать отчёт] Научился: На этом курсе я потренировался в использовании делегатов и научился расчитывать пересечения шарика и кирпичиков в Арканоиде написанном под WPF, испортировать функции из user32.dll для управления координатами мышки для бота-кликера и начал пробовать свои силы в написании программ под андроид в игре с цифрами. Ещё собрался с духом для записи видео :) Написанные в рамках курса программы: 1) Арканоид - Arkanoid.rar (C# + WPF) 2) Скорость реакции - Reaction.rar (C# + WPF) 3) Игра Цифры - MobiDigits.rar (Под Андроид 5.1+. C# + Xamarin) 4) Бот для Цифр - ScreenClicker.rar (C# + WPF) Архивы исходников программ доступны по ссылке: https://drive.google.com/drive/folders/17p1RWDPMPiWib4j0gDg3yNgOwtPek-ZS Сложности: Собраться с духом для записи видео и решить проблему с распространённой ошибкой с отказом микрофона на ноутбуке под управлением Windows 10. Видеообзор: wc_CM0po10A |
|||||
9 | VIP урок. Игра 2048 |
|
|||
Поздравляю с окончанием курс "Наноигры". Теперь можно немножко расслабиться и поиграть в 2048. Мы напишем эту замечательную игру в курсе "Микроигры". Отчёт отправил: 10080. FireWolf Выполнено за 43 мин. [Показать отчёт] Научился: В этот раз удалось дойти только до 1024, но вообще 2048 я набирал. |
|||||
Итого: 9 видеоуроков |
4 час. 10 мин. 17 тестов |
55 чел. | |||
Финалисты: Сергей, Николай Денисов, Progresir, WildOrc, Dmitry Sinitsin, Chip, Bodrik_torf, zhikharevav, Виталий, Иван Воронин, Андрей, Алексей|BrisK|Кривицкий, Денис, Андрей Шевченко, Protos, Никита, Иван, Владимир, Юрий, Константин Мельников, Михаил, OloloCode, Александр, Tekashnik, Дмитрий, Евгений, Dima, Salamatory, Snepper, Морозов Юрий Александрович, Oleksandr, superGrover, Никита, Новопашин Владимир, Сергей Соколов, Александр, Александр Балбашов, FireWolf, Максим Лапшинов, Denis, AlliZzeN, Кирилл, ser2018, DimanDOS, Permitin Alexey, Алексей В., vip, Дмитрий, Артём Нагорный, no name, ES35, MaxB, Konstantin, Tim, Tom . |