В этом посте я развиваю часть 3, заставляя монету лететь по дуге, прежде чем приземлиться в указанном месте и отвлечь охранников.
Цель сегодняшнего дня: улучшить подбрасывание монеты, бросая монету из руки в заданную точку.
Дизайн:
Я рассматривал 2 разных варианта «анимации» подбрасывания монеты по дуге:
- Реальный метод: фактически создайте монету в руке и установите ее начальную скорость, чтобы бросить ее в точку.
Плюсы: реалистичность. Может ударить по физическим объектам во время броска, что приведет к непреднамеренному отвлечению внимания. Простой код. Простые визуальные эффекты.
Минусы: может ударить по физическим объектам во время броска, что приведет к непреднамеренному отвлечению внимания.
- Фальшивый метод: создайте визуальный эффект (эффект частицы или аналогичный), который перемещается по дуге, а настоящая монета появляется, когда достигает конца.
Плюсы. Визуально интересно. Никаких взаимодействий между физикой и объектами. Всегда попадает в цель. Настраиваемый.
Минусы: сложнее в реализации. Наверное нереально.
В этом посте я расскажу о методе «Настоящий», который я в итоге использовал. Метод «Fake» будет в следующем посте в качестве альтернативного варианта.
Код:
При нажатии правой кнопки мыши я запускаю сопрограмму под названием «TossCoin()», которая позволяет мне управлять задержками между разными кодами во время подбрасывания. Он устроен следующим образом:
Чтобы пропустить полет монеты, я сделал так, чтобы она появлялась в точке Шага 8, но теперь она перемещается в точку Шага 4 до уже рассчитанного времени полета монеты.
Поскольку многие из этих шагов были выполнены в прошлых постах/можно сделать самостоятельно, я покажу новые вещи.
Для шага 4:
Для шага 8 и 9:
В итоге я остановился на дизайне, который, даже используя «настоящий» метод, всегда попадает в целевую точку (проходит сквозь другие объекты). Это не то, что я изначально планировал, и я, вероятно, изменю это позже, но у меня были некоторые трудности с неожиданными эффектами, возникающими из-за того, что монета ударялась о предметы в полете и приземлялась в непреднамеренных местах. Также иногда проваливается сквозь пол.