Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
👨‍💻Класс с набором методов для распознования коллизий

👉 Так как у нас уже есть два алгоритма распознования пересечения для кружков и для AABB объектов, то логично это дело упаковать в одном классе
👍1
👨‍💻Применение вцелом такое же, в поток проверки коллизий добавил логику работы с AABB
Media is too big
VIEW IN TELEGRAM
👉 Анимации взрывов тут тоже также как на прошлых демо хорошо встраиваются, получается вот так
1🔥1
Media is too big
VIEW IN TELEGRAM
День 28: Заметка 1: Покадровая анимация

👉 Во всех играх для анимации персонажей реализован стандартный подход - покадровая анимация.

👉 Устроено это так:
У персонажа может быть несколько состояний, для каждого состояния есть набор кадров.
Когда персонаж появляется в игровом мире, создается экземпляр класса, моделирующего этот персонаж.
У персонажа есть переменная, которая хранит текущее состояние.
Когда игровой движок хочет отрисовать персонажа, он обращается к его экземпляру и просит дать кадр, который необходимо отрисовать в текущий момент времени в зависимости от текущего состояния.

🎯 Именно это реализовал сегодня на примере полета космического корабля.

У корабля есть три состояния:
idle - полет иллюминатором вперед (то есть к нам)
left - полет налево (иллюминатор смотрит влево)
right - полет направо

#Arduino
1
Code Every Day 🚀
День 28: Заметка 1: Покадровая анимация 👉 Во всех играх для анимации персонажей реализован стандартный подход - покадровая анимация. 👉 Устроено это так: У персонажа может быть несколько состояний, для каждого состояния есть набор кадров. Когда персонаж…
👆 Пояснения к демо

👉 корабль летает по экрану, достигнув края экрана, он меняет состояние, и, соответственно, меняется атлас кадров
👉 текущее состояние корабля выводится в виде текста в левом верхнем углу экрана
👉 иногда корабль обрисован рамкой AABB прямоугольника, хотел показать, как это все вместе перемещается, в обычном режиме прямоугольник не виден
👍1
Code Every Day 🚀
День 28: Заметка 1: Покадровая анимация 👉 Во всех играх для анимации персонажей реализован стандартный подход - покадровая анимация. 👉 Устроено это так: У персонажа может быть несколько состояний, для каждого состояния есть набор кадров. Когда персонаж…
👆 Логика реализации

👉 Главный класс - Sprite, он отвечает за одного персонажа, который будет размещен на экране.
👉 У спрайта есть поле AABB, то есть прямоугольник, в который вписан данный персонаж, из прошлой заметки ясно, что это будет использоваться для определения столкновений.
👉 Для работы с покадровой анимацией реализовал отдельный класс Atlas, который содержит массив изображений (кадров).
👉 У спрайта может быть набор полей атласов спрайтов, для каждого состояния свой.
👍1
👨‍💻Класс Atlas, который хранит массив кадров анимации
👍1
👨‍💻Базовый класс Sprite для логики отображения персонажа на экране
👨‍💻Класс SpaceShipSprite моделирующий космический корабль
👨‍💻Применение SpaceShipSprite
👉 Атлас анимаций содержит по два кадра для каждого состояния

На них видно, как меняется отрисовка огня, это заметно и на видео; ну и также видно, что меняется расположение иллюминатора, тени и др.
👍1
День 29: Заметка 1: Итоги 4х недель

Последние 4 недели были посвящены программированию Arduino для работы с RGB матрицей.

🎯 Итог

👉 собран рабочий протип Arduino + RBG матрица
👉 хорошая тренировка по основам в программировании на Wiring (C++), освоены базовые методы работы в Arduino IDE
👉 изучены основы работы с библиотекой для работы с RGB матрицей https://github.com/adafruit/Adafruit-GFX-Library
👉 изучены основны работы с ArduinoThread https://github.com/ivanseidel/ArduinoThread
👉 реализовано множество прототипов для работы с выводом текста, простые анимации для примитивных объектов
👉 научился выводить изображения
👉 реализованы прототипы для интерполяторов, много наглядных примеров по перемещению объектов с применением интерполяторов
👉 некоторые алгоритмы из гейм дева, рассмотрены методы работы коллизиями
👉 реализованы анимации спрайтов
👉 собран рабочий протип Arduino + Bluetooth

Кажется, большего не выжать, разрешение малое у панели.
Для чего-нибудь это может пригодиться.
За это время получил много удовольствия.

#Life
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
День 30: Заметка 1: Анимация персонажа: Idle State

🎯 Решил сегодня реализовать анимацию для персонажа, анимация, которая должна проигрываться, пока он стоит.

👉 Пример на демо.

#Arduino
🔥1
Атлас такой заготовлен, то есть персонаж должен стоять и немного вращать тело, двигая руками
👍1