Pull to refresh

Comments 7

В вашей игре можно было бы хранить только правую и левую границы дороги, как набор линий. Это позволило бы не решать задачу нахождения точки в многоугольнике, а просто проверять, что при известном У ваш Х находится между двумя границами.
В игре есть уровни посложнее, где дорога разветвляется, замыкается к кольца и т. п. К тому же есть ведь ещё и движущиеся обьекты. Мой метод позволяет обработать их все одинаковым образом (причесать под одну гребёнку)
UFO just landed and posted this here
Можно определить, находится ли точка A внутри любого замкнутого многогранника(не обязательно выпуклого) эвристическим способом:
— Находим точку B, гарантированно находящуюся вне многогранника. Например перебираем все точки, находим самую дальнюю по оси x и добавляем к координатам этой точки +1 по оси x.
— Считаем пересечения всех отрезков, образующих многогранник (граней) с отрезком AB.
Если число четное — точка А находится вне многогранника.

А вообще тема простой геометрии (которая быстро перерастает в непростую и вообще 3д случаи коллизий и прочую магию) очень интересная.
Очень интересный способ! Если бы знал его раньше — скорее всего им бы и пользовался.
А ещё как вариант, если ограничения по памяти позволяют, можно просто сделать битовую карту, с 1 битом на пиксель, «проходимо-не проходимо» и заполнять её при загрузке уровня. Тогда можно будет не вычислять пересечения на каждом такте, а просто выбирать значение по координатам.
Мне понравилось. Продолжайте в том же духе, надеюсь будет продолжение.
Sign up to leave a comment.

Articles