![]() |
Мгновенный полет пули
Вложений: 1
При нажатии на ЛКМ из пистолета вылетает пуля. На данный момент она летит не очень быстро, и при столкновении с объектом делает определенные действия. Как сделать так, чтобы пуля летела очень быстро (например, если пистолет с одной стороны поля, а объект с другой), и через 1-2 кадра уже столкнулась с объектом. Проблема в том, что быстрый полет пули дает большой шанс того, что она пролетит насквозь объекта. Т.е. пуля - это небольшая точка, и если за кадр она будет пролетать по 100 (примерно) пикселей, то сами понимаете, то что было в этих 100 пикселях останется не тронутым. Пытался делать пулю длинной, чтобы её конец на следующий кадр оказался её началом, но тогда если я стрельну на 45 градусов (вид сверху), то область прорисовки покажет, какую огромную область занимает пуля. Тогда по объекту и целится не придется.
Вопрос в следующем, как реализовать такую стрельбу? Или в другом случае как сделать так, чтобы у пули была область прорисовки как на рисунке 1, а не как на рисунке 2 (красная область - область прорисовки; черное - пуля) Если кто-то менял понял, прошу помощи! :) |
Математикой считаете пересечение прямой траектории пули с целью-врагом — так узнаете, было ли столкновение. Пуля летит не дальше координат врага, после чего пропадает (просто для наглядности и красоты).
|
speedBulletVedroid = скорость полёта пули.
Код AS3:
|
Цитата:
|
Рад, что получилось. Вы тоже не предоставили кода =)
|
Цитата:
|
Кстати, баллистическую траекторию сделать не так сложно. Простое квадратное уравнение. А какие возможности открываются... :)
Разделите на два метода: 1. Анимация движения пули 2. Обнаружение попадания Первый метод оперирует шагом, в зависимости от скорости (FPS, полагаю, должен быть фиксированным - 25?) Второй метод - простая формула. И для прямой, и для гиперболы - определяет, находится ли объект на траектории полета пули. Если нельзя пренебречь движением объекта - тогда проверять, находится ли объект на траектории полета пули в новом местоположении. Тут частота может быть ниже, например 5-10Гц |
| Часовой пояс GMT +4, время: 17:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.