Столкновение в зависимости от стороны прямоугольника? - PullRequest
3 голосов
/ 10 декабря 2011

Меня не интересует код этой проблемы, я просто хочу, чтобы его указали в правильном направлении.

Я использую C # XNA, если это поможет.

В основном для моей игры, которую я добавляюнапример, столкновения: игрок не может идти или падать сквозь камни ... У меня есть прямоугольник, и я знаю, что использую команду .intersects, но нужно ли мне проверять столкновение в зависимости от стороны прямоугольника?

Я знаю, если игрок падает, я могу сделать, если playerRectangle пересекает stoneRectangle playerY = stopFalling ..

Но если прямоугольник сталкивается со стороной игрока ... Это было бы иначе, не так ли?

Ответы [ 2 ]

3 голосов
/ 10 декабря 2011

Если ваша игра 2D, я бы порекомендовал использовать что-то вроде FarSeer Physics , а не реализовывать себя.

Если вас интересуют алгоритмы, то это открытый исходный код, и вы можете осмотретькод, чтобы увидеть, как они реализовали обнаружение столкновений.

3 голосов
/ 10 декабря 2011

Один из простых способов справиться с этим - определить основную ось проникновения, то есть игрок дальше в прямоугольник по горизонтали или по вертикали. Затем, используя эту информацию, вы переместите игрока так, чтобы он просто касался прямоугольника.

т.е. Игрок врезается в стену справа от него.

Основная ось горизонтальная, и он слева от центра прямоугольника, поэтому мы знаем, что он должен двигаться влево.


Поиск на gamedev.stackexchange.com предоставит вам множество различных опций обнаружения / ответа на столкновения.

...