#phaser-framework
#фреймворк phaser
Вопрос:
В настоящее время я проверяю update()
, сталкивается ли пуля со стеной столкновения следующим образом:
game.physics.arcade.collide(weapon.bullets, collisionLayer, collisionHandler, processCallback, this);
Это работает! Но когда я устанавливаю weapon.bulletSpeed = 2000;
действительно высокое значение (выше 900), это больше не работает, и пули «туннелируют» через стены столкновения.
Я пытаюсь реализовать снайперскую винтовку, подобную винтовке, где для попадания пули в препятствие практически не требуется времени. Итак, я хотел бы знать, как рассчитать координаты столкновения пули со стеной столкновения в момент, когда игрок стреляет. Как я могу это сделать?
Ответ №1:
Пуля может перемещаться с большими шагами, чтобы фактически не пересекаться.
Подумайте о том, чтобы создать линию вида y = mx b для представления пути пули, а затем две вертикальные линии, представляющие стену.
Решите алгебраически для пересечения линии пули и каждой из двух линий стены. Если есть решение, то пуля действительно попадает в стену.
Комментарии:
1. Спасибо за ответ. Но мой вопрос более специфичен для фреймворка phaser. Я хотел бы знать, есть ли встроенный метод для этой задачи.
Ответ №2:
Я нашел встроенное решение в phaser. Эта демонстрация показывает, как это работает: