Javascript Canvas Вопрос обнаружения столкновения - PullRequest
0 голосов
/ 02 февраля 2019

Я уже некоторое время борюсь с этой проблемой, и я хотел бы помочь.Так что в основном здесь ситуация.У меня есть несколько квадратов, которые все (100 на 100) движутся вверх по холсту и через некоторое время снова сбрасываются на дно.У меня также есть контролируемый куб (20 на 20), который перемещается влево и вправо.Цель игры - уклоняться от кубов, пока не будет достигнут определенный срок.Но я не могу на всю жизнь получить обнаружение столкновений для "космического корабля" и работающих квадратов.У кого-нибудь есть какие-либо идеи?Вот мой код, который уже несколько преуспел в этом (только левая сторона «космического корабля» попадает в другие регистры кубов).

for(var n = 0; n < block.length; n++){
if(y > block[n].y && y < (block[n].y + 100 )){
    console.log(y + 100 + " " +  "y check1");
    if(x > block[n].x && x < block[n].x + 100){
        x += 20;
        console.log(x + 100 + " " +  "x check1");
     }
  }
}

Примечание: x и y = положение корабля, block.y и block.x = положение блоков, непрерывно повторяющихся для проверки.

Iможет предоставить остальную часть моего кода, если это необходимо.Спасибо!

1 Ответ

0 голосов
/ 02 февраля 2019

Вот базовое обнаружение столкновений.Интересно, что в действительности это не столкновение, а промежутки между объектами.Нет разрыва, это хит.

if (rect1.x < rect2.x + rect2.width &&
   rect1.x + rect1.width > rect2.x &&
   rect1.y < rect2.y + rect2.height &&
   rect1.height + rect1.y > rect2.y) {
// collision detected!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...