Наверное нубский вопрос, как лучше сделать регистрацию попадания снаряда в

игрока в 2д платформере?
вот на картинке у меня есть спрайт персонажа и спрайт пули. красным я обвёл их условные размеры.
в какой момент лучше засчитать попадание пули в игрока? у меня есть пара версий:
1. должен быть некий прямоугольник поменьше, после пересечения границы которого попадание засчитается. способ очень неточный, но легко реализуется.
2. при попадании спрайта пули в спрайт персонажа пуля должна попасть в непрозрачную часть спрайта персонажа. это сложнее реализовать, но будет намного точнее.
есть какой-то стандартный вариант в таких ситуациях?

7 ответов

29 просмотров

Добавь колизию к пуле и персонажу и проверяй попадание

Ну вообще, сперва тебе нужно определиться, что у тебя будет - снаряды или хитскан? Хитскан это когда ты мгновенно попадаешь, тогда в этом случае снаряды можно не делать.

Первый вариант, второй менее производительный и при этом ведет к большему кол-ву проблем

Но вообще, если хитбоксы делать точные прям, то где-то это может быть полезно, но иногда это может даже мешать. Приведу примеры. При разработке quake champions намерено были увеличены хитбоксы, потому что изначально их сделали приближёнными к моделям, но после геймплейных тестов оказывалось, что попадать нормально на таких скоростях игры очень трудно. Но вот например, в counter strike, где геймплей не спешный особо и больше претендует на реализм, вот там хитбоксы приближены к моделям, чтобы попадать было сложнее.

Deathwish
Но вообще, если хитбоксы делать точные прям, то гд...

Ну там, стоит отметить, система все равно другая. Там по сути просто несколько капсульных коллайдеров, которые прибиты к костям модельки, а не то что проверки по пикселям или вроде того

🔵 🖤
Ну там, стоит отметить, система все равно другая. ...

Ну потому что алгоритмически проще проcщитать столкновение с какиим-то параметрическим объектом или функцией, нежели с множеством отрезков или треугольников (если речь о 3d)

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта