Обнаружение столкновений и ходьба вокруг объектов - PullRequest
0 голосов
/ 22 февраля 2010

Я пишу программу для телефона Android (который использует Java в качестве языка программирования)

Я пишу игру, в которой нужны объекты для перемещения по другим объектам. Например: если объект должен был переместиться из точки А в точку Б, а на пути был другой игровой объект, он бы перемещался вокруг него.

Мне также нужно обнаруживать столкновения с объектом, например, если объект касается другого объекта.

Какие-нибудь хорошие ресурсы для этого материала?

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Что касается обнаружения столкновений, есть некоторые моменты, которые вы можете рассмотреть в соответствии с вашими конкретными потребностями:

  • Самым простым является столкновение с ограничивающим прямоугольником. Каждый объект имеет невидимую ограничивающую рамку, которую вы используете, чтобы проверить, пересекается ли она с коробкой врага.
  • При необходимости вы можете использовать наборы ограничивающих рамок для определения области столкновения объекта.
  • Помимо ограничивающих рамок, вы также можете использовать форму круга или эллипса
  • Если у вас есть множество объектов, вам нужна какая-то схема разбиения. Если вы собираетесь протестировать объект А, он сталкивается со всеми другими объектами, это может занять слишком много времени. Самое простое - разделить сцену на сетку и в каждой ячейке проверять только столкновения других объектов в этой ячейке (и, возможно, соседних ячейках). Более продвинутые способы разбиения, на которые вы можете посмотреть, - это квад-деревья.
  • Не используйте идеальные методы столкновения с пикселями. Хотя это звучит круто, они вряд ли когда-нибудь пригодятся. Это связано с тем, что, скорее всего, ваш объект будет анимирован, и вы не хотите, чтобы каждый кадр анимации имел разные характеристики столкновения.
0 голосов
/ 22 февраля 2010

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

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