Помогите отладить обнаружение столкновений в шутере.

  • Автор темы jobrek
  • 19
  • Обновлено
  • 12, May 2024
  • #1
Я работаю над небольшой игрой, и у меня возникают трудности с обнаружением столкновений. Весь код здесь:http://codepen.io/willydev/pen/EgwYRZ

Я пытаюсь проверить, находятся ли выстрел и противник в одном квадрате (Аа или Аб и т. д.). Идея состоит в том, что каждый раз, когда выстрел или враг перемещается, его позиция фиксируется внутри объекта сетки.

Затем детектор P1 проверяет, находятся ли они в одном квадрате.

Проблема в том, что у меня сложилось впечатление, что это две версии объектов сетки, потому что, когда я использую console.log в обеих функциях this.move, Shotconstruct возвращает версию, в которой он зарегистрирован, и то же самое относится и к ennemyconstruct.

Они никогда не находятся в объекте сетки одновременно. Ребята, вы знаете, как это отладить?

jobrek


Рег
13 Sep, 2010

Тем
1

Постов
3

Баллов
13
  • 08, Jun 2024
  • #2
Есть ли законная причина для использования сетки, например, вы хотите, чтобы стены были выровнены по ней или что-то в этом роде? Не знаю, почему вы просто не используете обычное поведение ограничительной рамки.

если бы они были A и B...
 
(A.bottom > B.top) &&
(A.top < B.bottom) &&
(A.right > B.left) &&
(A.left < B.right)
Код (разметка): нет необходимости усложнять его, пока вы не перейдете к проверке маски или формы в качестве следующего шага.

Маскирование зачастую является самым простым и быстрым с точки зрения кода способом определения «они действительно трогают друг друга», хотя его сложно настроить в первую очередь в JS, поскольку «Герпадерп слишком тупое приведение типов меха»…

Я имею в виду, что если для этой сетки нет ДЕЙСТВИТЕЛЬНО веской причины, потеряйте сетку как часть проверки.
 

vesno


Рег
01 Jan, 2011

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно