| Как отслеживать выбор нескольких объектов и их пересечение? | 
|  | 
| 
| 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.
 |  |  |  |  |