Как отслеживать выбор нескольких объектов и их пересечение?
|
|
n06rin | Дата: Пятница, 20 Декабря 2013, 07:57 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| В каждой игре что я делаю я прихожу к тому, что надо как-то решать проблему пересечения объектов.
Раньше я для этого создавал двумерную матрицу, ячейки в которой соответсвовали соответствующим координатам на экране. На картинке должно быть понятно что я имею в виду. ссылка на картинку Данная матрица удобная для работы с объектами. Можно сразу выделить множество, следить на каком объекте находится курсор. прокладывать путь, не обходя занятые ячейки.
Однако, сейчас я прихожу к тому что это не самое удобное решение. В том же javafx каждый объект который видит игрок может сам обрабатывать события, поэтому подобная матрица кажется излишней.
Как вы подходите к решению этой проблемы? Наверняка есть более удобные решения.
мой блог там выкладываю материалы своих разработок. Буду рад если посмотрите!
|
|
| |
FadeBaker | Дата: Суббота, 21 Декабря 2013, 16:56 | Сообщение # 2 |
JavaSE Game Developer
Сейчас нет на сайте
| Если я тебя правильно понял, то тебе нужен алгоритм проверки столкновений и выполнение событий столкновения между объектами. То, что ты называешь матрицей, называется Spatial Hashing (разбиение пространства на сектора). Далее у объекта вычисляется ячейка, на которой он находится, берутся объекты из соседних ячеек, потом происходит банальная проверка пересечения прямоугольников, описывающие объект (проще говоря - это маска столкновения). Ну и вызвать функцию handleCollision(object) у объектов, с которыми пересекся наш объект. Как-то так.
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |