Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
День 26: Заметка 2: Как используются взломанные сайты в фишинге

Хорошая статья на securelist.ru про то:
👉 как кибер преступники могут взламать сайт, какие сайты взламывают часто
👉 зачем взламывают неактивные сайты
👉 как распознать, что сайт взломан (некоторые из признаков перечислены)

#securelist
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
День 27: Заметка 1: Коллизии - Понятие AABB объектов

🤔 В играх для определения столкновений объектов редко используют окружности.
Обычно в играх берут персонажей, их обрисовывают прямоугольниками (их не видно на экране), затем уже столкновения определяют как пересечение прямоугольников.

👉Дело в том, что прямоугольником можно более точно получить границы объекта, чем окружностью. Столкновения будут выглядеть более реалистично.

🎯 В этот раз реализуем определение коллизий для прямоугольных объектов.

👉 Будем использовать понятие - ограничивающего прямоугольника, выровненного по координатным осям ( Axis Aligned Bounding Box, AABB ). Такие прямоугольники не вращаются. Пересечение между такими прямоугольниками будем рассматрикать как коллизию.

👉 Модель такого прямоугольника легко описать двумя координатами: min - верхняя левая точка прямоугольника, max - нижняя правая точка прямоугольника.

👉 Алгоритм поиска перечения между AABB прямоугольниками строится на основе теоремы о разделяющей оси.

#Arduino
🔥1
👨‍💻 Модель AABB объекта со всеми свойствами и методами

👉 Со всеи пояснянениями на слайдах
👍1
👨‍💻Класс с набором методов для распознования коллизий

👉 Так как у нас уже есть два алгоритма распознования пересечения для кружков и для 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