C++ : плиточный движок " платформер #1 "
00:00 Введение и демонстрация • Создание простой игровой платформы на основе плиток. • Демонстрация графической части, которая не является основной. 00:16 Представление Джерри и основы движка • Представление Джерри и его особенности. • Объяснение работы движка на основе плиток и сбора монет. • Упоминание о столкновении плиток и использовании чисел с плавающей запятой. 01:16 Динамика персонажа • Обсуждение динамики прыжков Джерри. • Подчёркивание важности развития навыков управления персонажем. 01:36 Серия видео и начало работы • Объяснение, что видео — часть серии. • План обсуждения создания уровней, управления камерой и игроком. • Использование консольного игрового движка One Encoder. 02:30 Игровой движок и ресурсы • Описание игрового движка и его методов. • Создание экземпляра класса Game и настройка консоли. 02:54 Двумерный массив плиток • Объяснение работы двумерного массива плиток. • Использование символов для обозначения плиток и пробелов. 03:52 Преимущества единого пространства • Преимущества работы в едином пространстве. • Извлечение местоположения плитки и её размеров. 05:27 Определение уровня • Представление уровня в виде строки. • Объявление ширины и высоты уровня. 06:24 Разработка уровня • Вставка хэшей для обозначения плиток. • Создание наземной плоскости и лестницы. 6:57 Тестирование столкновений • Добавление туннеля для тестирования эффективности обнаружения столкновений. • Обеспечение выхода для игрока. 07:56 Камера и прорисовка уровня • Настройка положения камеры. • Преобразование единого пространства в мировое пространство. • Фиксация камеры при приближении к границам уровня. 08:56 Рисование плиток • Создание вложенных циклов для рисования плиток. • Использование лямбда-функций для проверки границ и извлечения символов. 10:55 Идентификация и рисование плиток • Извлечение символа из строки для заданного местоположения. • Решение о рисовании плитки на основе её идентификатора. 11:23 Рисование прямоугольников и управление камерой • Использование команды one encoder fill для рисования прямоугольников. • Масштабирование значений x и y по ширине плитки. • Установка голубого цвета для пустых пространств и красного для твёрдых поверхностей. • Добавление возможности управления положением камеры и создание переменных для позиции игрока. 12:23 Обработка входных данных и управление направлением • Установка положения камеры в соответствии с позицией игрока. • Проверка фокуса окна команд с помощью флажка «находится в фокусе». • Добавление элементов управления для направления вверх, вниз, влево и вправо. 13:23 Тестирование столкновений и обновление позиции игрока • Использование функции get key для обработки нажатий клавиш. • Изменение скорости вращения игрока в зависимости от нажатой клавиши. • Обновление позиции игрока с учётом скорости и прошедшего времени. 15:12 Рисование игрока и сглаживание движения • Рисование зелёного прямоугольника, представляющего позицию игрока. • Вычитание смещённого положения из текущего положения игрока для точного определения границ уровня. • Сглаживание движения карты для улучшения пользовательского опыта. 16:39 Решение проблемы с целыми числами и смещение плиток • Изменение размера плиток для адаптации к размеру экрана. • Вычисление смещений для отдельных плиток на основе дробных частей координат. • Применение смещений при рисовании прямоугольников для более плавного движения. 19:01 Проверка результата и решение проблемы с границами • Проверка плавности движения зелёного прямоугольника. • Обнаружение проблемы с искажением границ по краям экрана. • Решение проблемы путём перерисовки границ плиток вокруг видимого экрана. 19:51 Введение в проблему столкновений • Избавились от краевых артефактов. • Обсуждается управление движением и камерой. • Основная тема видео: столкновения плитки с плиткой. 19:57 Предположения и вектор скорости • Персонаж игрока представлен как плитка шириной и высотой в одну единицу. • Столкновения происходят только с другими плитками. • Вектор скорости vx и vy позволяет предсказать положение игрока в следующем кадре. 20:55 Проблемы с вектором скорости • Обновление вектора скорости и положения может привести к диагональным столкновениям. • Необходимо определить направление минимального перекрытия для перемещения плитки игрока. 21:52 Геометрия и математика столкновений 22:51 Обработка столкновений по оси x 23:21 Объяснение использования новых и старых позиций 24:20 Объяснение добавления 0.9 к y 27:10 Две проверки и усечение 29:30 Применение алгоритма к оси y 30:28 Тестирование алгоритма 30:59 Введение в процедуру обнаружения столкновений 31:31 Настройка скоростей и ускорение 31:53 Реализация прыжка 32:53 Управление сопротивлением и контролем 33:52 Контроль в воздухе 34:23 Преобразование прямоугольников в спрайты 37:04 Взаимодействие с монетами 39:01 Заключение и перспективы
00:00 Введение и демонстрация • Создание простой игровой платформы на основе плиток. • Демонстрация графической части, которая не является основной. 00:16 Представление Джерри и основы движка • Представление Джерри и его особенности. • Объяснение работы движка на основе плиток и сбора монет. • Упоминание о столкновении плиток и использовании чисел с плавающей запятой. 01:16 Динамика персонажа • Обсуждение динамики прыжков Джерри. • Подчёркивание важности развития навыков управления персонажем. 01:36 Серия видео и начало работы • Объяснение, что видео — часть серии. • План обсуждения создания уровней, управления камерой и игроком. • Использование консольного игрового движка One Encoder. 02:30 Игровой движок и ресурсы • Описание игрового движка и его методов. • Создание экземпляра класса Game и настройка консоли. 02:54 Двумерный массив плиток • Объяснение работы двумерного массива плиток. • Использование символов для обозначения плиток и пробелов. 03:52 Преимущества единого пространства • Преимущества работы в едином пространстве. • Извлечение местоположения плитки и её размеров. 05:27 Определение уровня • Представление уровня в виде строки. • Объявление ширины и высоты уровня. 06:24 Разработка уровня • Вставка хэшей для обозначения плиток. • Создание наземной плоскости и лестницы. 6:57 Тестирование столкновений • Добавление туннеля для тестирования эффективности обнаружения столкновений. • Обеспечение выхода для игрока. 07:56 Камера и прорисовка уровня • Настройка положения камеры. • Преобразование единого пространства в мировое пространство. • Фиксация камеры при приближении к границам уровня. 08:56 Рисование плиток • Создание вложенных циклов для рисования плиток. • Использование лямбда-функций для проверки границ и извлечения символов. 10:55 Идентификация и рисование плиток • Извлечение символа из строки для заданного местоположения. • Решение о рисовании плитки на основе её идентификатора. 11:23 Рисование прямоугольников и управление камерой • Использование команды one encoder fill для рисования прямоугольников. • Масштабирование значений x и y по ширине плитки. • Установка голубого цвета для пустых пространств и красного для твёрдых поверхностей. • Добавление возможности управления положением камеры и создание переменных для позиции игрока. 12:23 Обработка входных данных и управление направлением • Установка положения камеры в соответствии с позицией игрока. • Проверка фокуса окна команд с помощью флажка «находится в фокусе». • Добавление элементов управления для направления вверх, вниз, влево и вправо. 13:23 Тестирование столкновений и обновление позиции игрока • Использование функции get key для обработки нажатий клавиш. • Изменение скорости вращения игрока в зависимости от нажатой клавиши. • Обновление позиции игрока с учётом скорости и прошедшего времени. 15:12 Рисование игрока и сглаживание движения • Рисование зелёного прямоугольника, представляющего позицию игрока. • Вычитание смещённого положения из текущего положения игрока для точного определения границ уровня. • Сглаживание движения карты для улучшения пользовательского опыта. 16:39 Решение проблемы с целыми числами и смещение плиток • Изменение размера плиток для адаптации к размеру экрана. • Вычисление смещений для отдельных плиток на основе дробных частей координат. • Применение смещений при рисовании прямоугольников для более плавного движения. 19:01 Проверка результата и решение проблемы с границами • Проверка плавности движения зелёного прямоугольника. • Обнаружение проблемы с искажением границ по краям экрана. • Решение проблемы путём перерисовки границ плиток вокруг видимого экрана. 19:51 Введение в проблему столкновений • Избавились от краевых артефактов. • Обсуждается управление движением и камерой. • Основная тема видео: столкновения плитки с плиткой. 19:57 Предположения и вектор скорости • Персонаж игрока представлен как плитка шириной и высотой в одну единицу. • Столкновения происходят только с другими плитками. • Вектор скорости vx и vy позволяет предсказать положение игрока в следующем кадре. 20:55 Проблемы с вектором скорости • Обновление вектора скорости и положения может привести к диагональным столкновениям. • Необходимо определить направление минимального перекрытия для перемещения плитки игрока. 21:52 Геометрия и математика столкновений 22:51 Обработка столкновений по оси x 23:21 Объяснение использования новых и старых позиций 24:20 Объяснение добавления 0.9 к y 27:10 Две проверки и усечение 29:30 Применение алгоритма к оси y 30:28 Тестирование алгоритма 30:59 Введение в процедуру обнаружения столкновений 31:31 Настройка скоростей и ускорение 31:53 Реализация прыжка 32:53 Управление сопротивлением и контролем 33:52 Контроль в воздухе 34:23 Преобразование прямоугольников в спрайты 37:04 Взаимодействие с монетами 39:01 Заключение и перспективы
