Комментарии 7
В вашей игре можно было бы хранить только правую и левую границы дороги, как набор линий. Это позволило бы не решать задачу нахождения точки в многоугольнике, а просто проверять, что при известном У ваш Х находится между двумя границами.
+1
НЛО прилетело и опубликовало эту надпись здесь
Можно определить, находится ли точка A внутри любого замкнутого многогранника(не обязательно выпуклого) эвристическим способом:
— Находим точку B, гарантированно находящуюся вне многогранника. Например перебираем все точки, находим самую дальнюю по оси x и добавляем к координатам этой точки +1 по оси x.
— Считаем пересечения всех отрезков, образующих многогранник (граней) с отрезком AB.
Если число четное — точка А находится вне многогранника.
А вообще тема простой геометрии (которая быстро перерастает в непростую и вообще 3д случаи коллизий и прочую магию) очень интересная.
— Находим точку B, гарантированно находящуюся вне многогранника. Например перебираем все точки, находим самую дальнюю по оси x и добавляем к координатам этой точки +1 по оси x.
— Считаем пересечения всех отрезков, образующих многогранник (граней) с отрезком AB.
Если число четное — точка А находится вне многогранника.
А вообще тема простой геометрии (которая быстро перерастает в непростую и вообще 3д случаи коллизий и прочую магию) очень интересная.
0
А ещё как вариант, если ограничения по памяти позволяют, можно просто сделать битовую карту, с 1 битом на пиксель, «проходимо-не проходимо» и заполнять её при загрузке уровня. Тогда можно будет не вычислять пересечения на каждом такте, а просто выбирать значение по координатам.
0
Мне понравилось. Продолжайте в том же духе, надеюсь будет продолжение.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Геометрия в компьютерных играх