Базовый курс С++ Часть #21. Анимация расплавления платформы

preview_player
Показать описание
Часть #21. Анимация расплавления платформы. (Базовый курс программирования на С++)
Самые лучшие бесплатные курсы по C++, Ассемблеру и Unreal Engine 5!

00:00 - Анимация расплавления платформы
00:42 - Делаем раскадровку анимации расплавления из оригинальной игры
03:27 - Анализируем анимацию и решаем, как мы будем её воспроизводить
06:02 - Вводим состояния платформы EPlatform_State
09:30 - Добавляем метод Act() для перерисовки платформы
12:56 - Рефакторим метод Draw() для рисования разных состояний платформы
16:59 - Смещаем область платформы вниз
23:12 - Ищем в MSDN функции для чтения и установки пикселей
26:41 - Анимация платформы в первом приближении
35:08 - Стираем фоном красные следы
51:46 - Смещаем столбцы платформы на случайное расстояние
57:27 - Выносим код в AsConfig::Rand()
01:00:58 - Убираем оставшиеся точки
01:02:34 - Замедляем анимацию, добавив подсчёт кадров в Current_Timer_Tick
01:07:35 - Сохраняем позицию смещения каждого столбца платформы
01:12:42 - Оператор sizeof

Рекомендации по теме
Комментарии
Автор

Спасибо за урок, все получилось, как обычно некоторое время тупил)
Пишу код частями, притормаживая видеоурок при логическом завершении. В какой то момент потерял общую картину, а платформа моя не тает, все проверил много раз, совпадения по всем методам и данным, а она не плавится. И только при мердже обнаружил, что установил != вместо = после условия if (Platform_State != EPS_Meltdown){Platform_State = EPS_Meltdown}. Ведь в этом месте надо было 100 раз проверить!!!
Ясно, что это следствие невнимательности и самонадеянности, к тому же не везде понятен смысл кода. Хотя именно здесь он был понятен!)
Спасибо вам. Завтра едем дальше).

KonstantinPt
Автор

прикольно, что в каждом видео, немного отличается музыка в начале урока)

tonahub
Автор

Компиляция на ходу. Первый раз когда внёс изменения в код и они тут же применились, тоже был удивлен что так можно. Верил что эта фича реализована везде, это же удобно! А оказывается не везде)

volodymyrgutsu
Автор

А можно ли было взять на одну строку пикселей выше? 37:00 которая над платформой

volodymyrgutsu
Автор

Александр, здравствуйте. По какой причине, когда мы делаем перерисовку платформы каждое n-ое количество тиков, мячик тоже начинает перерисовываться не каждый тик, вроде бы условие относится только к платформе?

gametap
Автор

Да действительно как писали в комментарии, вся игра начинает лагать, после установки GetPixel и SetPixel 26:38, хотя компьютер не слабы I7 8700 и видяха rtx

FATTEL
Автор

Александр, чуть не понял, в 21.20 константу 1 заменили на y_offset, , ведь если ее значение остаётся один, то и смешение так же будет на 1?

davidshapirofitnessmotivat
Автор

Александр, могли бы Вы дать мне пояснительный комментарии к проблеме, которая возникла у меня. Правда проблему я уже решил, она возникла из-за скобок (), не могу понять в чем заключается ошибка либо математическая, либо синтаксическая.
В методе Redraw_Platform, где устанавливаются свойства Platform_Rect.right (left +width)*global; Platform_Rect.botton ( top + height)*global;, я по своей инициативе ещё тогда уставил эти скобки ().
Теперь когда нужно вызвать в методe Draw_Meltdown_State для координаты - y - Platform_Rect.botton - эти самые скобки (), не дают перерисоваться платформе в цикле for, чтобы пошла перерисовка вниз. Платформа просто стоит, нашёл проблему, убрал, поехала.

pauldavidson
Автор

Мой результат этого урока, затормаживает движение мяча, да и всей игровой логики, очень сильно. Это мой медленный процессор? На видео нет и намека на фризы.

volodymyrgutsu
Автор

56:20 можна было просто написать rand() % 4 + 1 наверное

ivanrozb
Автор

По автору при уменьшении константы Meltdown_Speed увеличивается скорость расплавления кирпича а у меня получилось наоборот, буду искать ошибку у себя.

сергейкотовский-ин
Автор

19:23 создавать переменную і во время создания цикла думаю было бы компактнее

ivanrozb