Последние записи
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
- Написать программу, считывает с клавиатуры определенное колличество цифр, а на экран выводит сумму наибольшей цифры
- Создать системную, невидимую, только для чтения папку
- Какой яп и ide выбрать для кроссплатформенного программирования?
- Скачать html страницу в memo с помощью indy
- Как разорвать adsl соединение с интернетом?
- Как отключить/включить сетевое соединение?
- Передать состояние CheckBox
19th
Июн
Правильное определение порядка точек в прорисовке тени в 2d-игре
Posted by bullvinkle under Топик-обзор
Здравствуйте уважаемые программисты!
Давно тут не постил уже, прям забыл уже как тут хорошо было
Вот заинтересовал вопрос о прорисовке тени. Допустим есть некий игрок и препятствия (см. вложение) и он имеет угол обзора 90 градусов и все, что выпадает за этот угол или закрывается препятствием не должно быть отображено. Допустим неким образом я сумел просчитать координаты этих точек, где кривая тени ломается. Определяю методом перебора:
1. Проверяю доступность для “обзора” каждой из четырех точек препятствия (все объекты – прямоугольники).
2. Если точка оказывается доступной(красные круги) то добавляем ее в список точек а также пробуем спроектировать луч из этой точки с углом из точки обзора, тем самим добавляя спроектированную точку в список(угол показан жёлтым, а спроектированная точка зелёным).
3. Дальше пытаюсь отсортировать эти точки так, чтобы их можно было бы прорисовать одним циклом (для начала просто соединить в ломанную(показано белым), а в дальнейшем хочу зарисовать все, не входящее в эту фигуру чёрным или серым). Но так как все препятствия расположены хаотически то может случится ситуация, когда одно препятствие попадает в список раньше положенного.
Давно тут не постил уже, прям забыл уже как тут хорошо было

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

