JS / Canvas - нужна помощь в выяснении логики столкновения - PullRequest
0 голосов
/ 01 декабря 2019

Я делаю roguelike-холст для практики, пока у меня есть генерация карт, игрок, враги и некоторые другие детали.

Я пытаюсь выяснить столкновение, чтобы мой игрок и враги пошлисквозь стены, и я немного застрял ..

Мой план состоял в том, чтобы получить все стороны объекта (игрок, враг, стены), а затем сравнить их позиции на карте и проверить наложения, и остановитьсоответственно, игрок / враг.

это то, что я до сих пор получил:

export function checkCollision(player, wall) {
  //check collision with player
  let bottomOfPlayer = player.position.y + player.height;
  let topOfPlayer = player.position.y;
  let leftOfPlayer = player.position.x;
  let rightOfPlayer = player.position.x + player.width;

  let topOfObject = wall.position.y;
  let leftSideOfObject = wall.position.x;
  let rightSideofObject = wall.position.x + wall.width;
  let bottomOfObject = wall.position.y + wall.height;

  if (bottomOfPlayer >= topOfObject && topOfPlayer <= bottomOfObject) {
    return true;
  } else {
    return false;
  }
}

, тогда я бы назвал эту функцию в моем game.js, и если она вернет true, я остановлюИгрок соответственно!

Кто-нибудь возражает помочь мне с этим? Я на правильном пути? Попытка прочесть несколько ответов и статей о 2D-столкновениях, но я, будучи новичком в программировании в целом, просто смутил меня еще больше.

Большое спасибо и надеюсь, что у вас отличный день!

...