игра сверху вниз - проверка, рисование зоны прямой видимости противника с препятствиями - PullRequest
2 голосов
/ 05 мая 2011

Примеры того, что мне понадобится: enter image description here enter image description here

Я использую cocos2d для рисования CCTMXTiledMap, на этих плитках мне нужно нарисовать треугольник LOS.

Как мне проверить, находится ли игрок в этом треугольнике, принимая во внимание препятствия? Как бы я нарисовал линию прямой видимости, как в приведенных выше примерах?

Кстати, я не был уверен, должно ли это быть опубликовано здесь или на gamedev, не злись.

1 Ответ

2 голосов
/ 06 мая 2011

Возможно, вы захотите взглянуть на алгоритмы точка-полигон, такие как алгоритм приведения лучей, описанный здесь .

Вы можете разбить треугольник, чтобы учесть препятствия, или просто сделать более сложный многоугольник. Вы должны быть в состоянии найти реализацию, которая соответствует вашим потребностям онлайн.

Вы также можете взглянуть на эту статью для вдохновения. Вы можете поддерживать древовидную структуру, корневой треугольник (или точку опоры), которую можно использовать для определения того, находится ли точка в общем положении, когда дети (треугольники) учитывают препятствия. Таким образом, вы можете быстро устранить более сложные проверки.

На изображении ниже темно-синие точки быстро исключаются из дальнейшей проверки, поскольку они не попадают в корневой треугольник просмотра.

enter image description here

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