19th
Июн

Правильное определение порядка точек в прорисовке тени в 2d-игре

Posted by bullvinkle under Топик-обзор

Здравствуйте уважаемые программисты!
Давно тут не постил уже, прям забыл уже как тут хорошо было
Вот заинтересовал вопрос о прорисовке тени. Допустим есть некий игрок и препятствия (см. вложение) и он имеет угол обзора 90 градусов и все, что выпадает за этот угол или закрывается препятствием не должно быть отображено. Допустим неким образом я сумел просчитать координаты этих точек, где кривая тени ломается. Определяю методом перебора:
1. Проверяю доступность для “обзора” каждой из четырех точек препятствия (все объекты – прямоугольники).
2. Если точка оказывается доступной(красные круги) то добавляем ее в список точек а также пробуем спроектировать луч из этой точки с углом из точки обзора, тем самим добавляя спроектированную точку в список(угол показан жёлтым, а спроектированная точка зелёным).
3. Дальше пытаюсь отсортировать эти точки так, чтобы их можно было бы прорисовать одним циклом (для начала просто соединить в ломанную(показано белым), а в дальнейшем хочу зарисовать все, не входящее в эту фигуру чёрным или серым). Но так как все препятствия расположены хаотически то может случится ситуация, когда одно препятствие попадает в список раньше положенного.

Прошу помощи в сортировке такого списке, чтобы можно было отобразить как на картинке Спасибо за внимание.

Миниатюры

Нажмите на изображение для увеличения  Название: Безымянный.jpg  Просмотров: 2  Размер:	53.4 Кб  ID:	26819

Интересная проблема и возможные варианты решения. Смотрим на форуме. Принимаем участие.

Похожие статьи