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

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

7 ответов

26 просмотров

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

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

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

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

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

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

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

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

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

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

Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Что за японодичь? Мне хоть m68k, хоть 8080, 8088, на любом можно что-то создать
Егор
5
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
и да, кто сказал что у эпла именно такой isa?
Boris Vinogradov
5
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Парни, а никто не пробовал вкорячить сгенерированный CudeMX код в проект раст? Недавно с этим языком ознакомился и возникла мысль, что можно написать скрипт для автоматическо...
NI_isx
11
Карта сайта