Я делаю 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-столкновениях, но я, будучи новичком в программировании в целом, просто смутил меня еще больше.
Большое спасибо и надеюсь, что у вас отличный день!