Ограничить движение при достижении границы карты или любых объектов - PullRequest
0 голосов
/ 15 ноября 2011

Я совершенно новичок в game-dev и хотел бы узнать лучшие практики по вышеуказанному вопросу.

Позвольте мне объяснить подробнее.

Я хочу создать 2D-игру с топ-с видом вниз и со свободным движением (без привязки к сетке), как в любой игре Zelda на GameBoy.

Как хранить границы карты?Есть ли способ сделать это автоматически?Например, у меня есть текстура с фоном и текстура с передним планом, где черный цвет должен казаться прозрачным и должен позволять перемещаться в пространстве.

Заранее спасибо.

1 Ответ

1 голос
/ 15 ноября 2011

Для простого обнаружения 2D столкновений вы, вероятно, будете использовать ограничивающие рамки.

По сути, вы создадите прямоугольник, который представляет каждый игровой объект.Координаты и размер прямоугольника будут такими же, как и у Texture2D (обычно это свойство задается для данного класса).Каждый раз, когда вы обновляете положение вашей текстуры, вы обновляете положение вашей ограничительной рамки.

Теперь, чтобы проверить наличие столкновений, просто переберите свои игровые объекты и посмотрите, не пересекаются ли какие-либо ограничивающие рамки.

Как только вы поймете идею, вы увидите, что ее очень легко реализовать.,XNA также предоставляет некоторые математические помощники для абстрагирования математики (хотя это простое сложение и вычитание).

Попробуйте эту ссылку для более подробного объяснения с примерами кода: http://www.dreamincode.net/forums/topic/180069-xna-2d-bounding-box-collision-detection/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...