Что такое коллизия (столкновение) в играх простыми словами?
Постоянно встречаю слово «коллизия» в туториалах по играм. Что это значит простыми словами и почему герой не проваливается сквозь пол?
2 ответа
Коллизия — это умное слово для «два предмета столкнулись/коснулись». 💥
Представь: ты идёшь и упёрся в стену. Дальше нельзя — стена не пускает. В игре компьютер всё время проверяет: «а герой случайно не врезался во что-нибудь?» Эта проверка и есть коллизия.
Как игра понимает, что было столкновение? Вокруг каждого предмета рисуют невидимую коробку (её называют хитбокс). Игра смотрит: пересеклись ли две коробки? Если да — значит, столкнулись! 📦📦
Зачем это нужно:
- герой не проваливается сквозь пол — его коробка упирается в коробку пола;
- герой не проходит сквозь стену;
- когда коробка героя касается коробки монетки → +1 очко;
- когда коробка героя касается коробки врага → минус жизнь! 💔
Код примерно такой:
если коробка_героя пересекается с коробкой_монетки:
очки = очки + 1
убрать монетку
Частая ошибка: коробку рисуют слишком большой, и герой «цепляется» за воздух рядом с врагом. Поэтому хитбоксы аккуратно подгоняют под картинку. В хороших движках коллизии считаются автоматически — красота! 🎮
Коллизия = столкновение двух объектов в игре. Вокруг каждого есть невидимая рамка, и игра проверяет, пересекаются ли рамки.
Именно благодаря коллизиям герой стоит на полу, а не падает в бездну, и не проходит сквозь стены. А ещё по коллизиям ловят моменты «подобрал монетку» и «коснулся врага».
Иногда специально отключают коллизию у облаков или фоновых деталей — сквозь них ведь надо проходить. ☁️