Как я могу предсказать столкновения игрока с снарядом в Box2D?

8

Я делаю стрелялку в реальном времени с Box2D в качестве физического движка. Геймплей в основном про траекторию, как Angry Birds. Я хочу создать эффект замедленного движения и перенести камеру на игрока, когда он убит, но эффект должен начаться, когда камень все еще находится в воздухе, до того, как столкновение действительно произойдет.

Величина ущерба рассчитывается только при столкновении, исходя из импульса. Поскольку это игра в реальном времени, игрок должен иметь возможность перемещать физическое тело своего персонажа без задержки.

Как я могу предсказать их смерть? Это вообще возможно? Я мог бы сделать радиопередачу, но что, если другой объект движется, чтобы заблокировать свой путь?

введите описание изображения здесь

Arch1tect
источник
1
Теоретическое примечание: будущее недетерминированных систем по определению непредсказуемо. Посмотрите на кота Шредингера , мысленно заменив «кота» на «персонаж игрока».
Анко
1
@ Анко очень интересная идея! Я никогда не пробовал это. Но игрок все еще может двигаться, поэтому, куда он идет или как далеко он не может быть предсказуем. Тем не менее, я знаю скорость движения игрока, поэтому, когда камень достаточно близко, я знаю, что он не пропустит ...
Arch1tect
1
(1/2) IMO было бы гораздо интереснее, если бы вы использовали raycast, чтобы увидеть, есть ли вероятность столкновения, а затем запустите масштабирование камеры и замедлите игру. Для каждого кадра снова выполните приведение луча, чтобы увидеть, находится ли камень на пути столкновения. Если камень перехвачен, камера должна просто вернуться в нормальное состояние, но для каждого кадра вероятность столкновения все еще велика, увеличьте камеру немного больше.
NauticalMile
1
(2/2) Это убьет двух зайцев одним выстрелом (игра слов не предназначена): вам не нужно будет «заглядывать в будущее», и игроки будут испытывать острые ощущения как от промахов, так и от прямых (или выпас) хиты. На самом деле, я могу утверждать, что ваши эффекты станут скучными, если игрок знает, что каждый раз, когда камера приближается, а игра замедляется, он обречен. Он захочет сразу пропустить «анимацию» и попробовать еще раз. Но если есть шанс, что он сможет избежать камня, вы можете поспорить, что он будет грызть ногти в ожидании результата.
NauticalMile
1
(1/2) @NauticalMile Эй, это тоже очень хорошая идея !! Боюсь, что это не может напрямую относиться к моей игре, потому что игрок слишком часто поражается, поэтому увеличение и замедление могут слишком сильно прервать текущую игру.
Arch1tect

Ответы:

2

Зачем рассчитывать траекторию для звуков / эффектов замедления?

Если вы поделите действие по замедлению камеры и воспроизведению эффектов на секции при приближении к своей гибкой жертве, то вы можете по существу воспроизвести их при условии их близости.

Это отличный пример, который приходит на ум. Эффекты замедления близости, используемые в Peggle

Мяч приближается к колышку и начинает замедляться. Это на самом деле полностью основано на близости, траектории нет. Если он подходит достаточно близко к последнему колышку, он начинает бросок барабана и замедляет игровой процесс, если он не попадает в колышек и выходит за пределы диапазона, вы слышите «Awww .. :(», и все возвращается в нормальное состояние, но если он столкнется, вы получите полноценную увертюру и выигрышный экран.

Это отличная техника, если вы одобряете, чтобы ваш игрок сказал: «Святая корова, я чуть не попал!». Если у вас есть стартовый звук / эффект для камеры смерти, которая будет играть до удара, просто включите ее, когда камень достаточно близко, чтобы, даже если игрок двигался с максимальной скоростью в любом направлении - у них была большая возможность получить прижим. ,

Скажем, ваш камень падает, и вы хотите начать эффект замедления на расстоянии ~ 4 м от игрока: вы начинаете с запуска замедления, перемещаете камеру и начинаете фокусироваться на игроке - если камень затем прерывается другими обломками, тогда просто выйдите из режима замедления, и ваш игрок продолжит игру как обычно.

введите описание изображения здесь

По сути, именно так Peggle справляется с их эффектом замедления и запускает музыку в конце игры, и он идеально подходит для использования в вашей камере / рок / мягком сценарии с упреждающей смертью.

Том Блю Пиддок
источник