|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.06.2010, 18:58 | #1 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Правильное определение порядка точек в прорисовке тени в 2d-игре
Здравствуйте уважаемые программисты!
Давно тут не постил уже, прям забыл уже как тут хорошо было Вот заинтересовал вопрос о прорисовке тени. Допустим есть некий игрок и препятствия (см. вложение) и он имеет угол обзора 90 градусов и все, что выпадает за этот угол или закрывается препятствием не должно быть отображено. Допустим неким образом я сумел просчитать координаты этих точек, где кривая тени ломается. Определяю методом перебора: 1. Проверяю доступность для "обзора" каждой из четырех точек препятствия (все объекты - прямоугольники). 2. Если точка оказывается доступной(красные круги) то добавляем ее в список точек а также пробуем спроектировать луч из этой точки с углом из точки обзора, тем самим добавляя спроектированную точку в список(угол показан жёлтым, а спроектированная точка зелёным). 3. Дальше пытаюсь отсортировать эти точки так, чтобы их можно было бы прорисовать одним циклом (для начала просто соединить в ломанную(показано белым), а в дальнейшем хочу зарисовать все, не входящее в эту фигуру чёрным или серым). Но так как все препятствия расположены хаотически то может случится ситуация, когда одно препятствие попадает в список раньше положенного. Прошу помощи в сортировке такого списке, чтобы можно было отобразить как на картинке Спасибо за внимание.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
18.06.2010, 21:48 | #2 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Сам думал попробовать сделать что-то с тенями, да вот руки не доходят.Есть статья про создание динамичных 2D теней. Там в основном теория на английском, но может поможет: http://www.gamedev.net/reference/art...rticle2032.asp Я не особо понял статью т.к не сильно разбирался да и переводил частично "на ходу". Последний раз редактировалось Вадим Буренков; 18.06.2010 в 21:50. |
|
18.06.2010, 22:44 | #3 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Допустим при расстановке препятствий (показано белым) имеет расстановку точек в полученном массиве (желтым) в порядке, который если отобразить просто в цикле будет выглядеть как синие линии, в отличии от нужного (белые). Интересует здравый алгоритм сортировки этих точек
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
18.06.2010, 22:56 | #4 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Вроде понял проблему. Что-то не приходит идей... Я бы сделал рассчет теней для каждого объекта отдельно. В принципе разницы для процессора никакой - рассчитывается все так же, только вывод за несколько раз будет.
P.S. Можно оценить наработки? Каким образом устанавливается порядок объектов для просчета теней (что белыми цифрами отмечены)? Последний раз редактировалось Вадим Буренков; 18.06.2010 в 23:00. |
18.06.2010, 23:37 | #5 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Ну чтото типа того, Скачать файл "wideo0016.mp4" с файлообменника CncFiles.ru (10.7 мб)
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
19.06.2010, 00:08 | #6 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Молодец, игра на уровне . Хочешь буду бетатестером ?
А пока делать нечего решил заняться тенями. Завтра начну пытаться делать рисование по той статье. Там вроде нормально написано как только кода почти нет , а тот что есть на C. |
19.06.2010, 19:32 | #7 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Dj_smart, вроде приоритет виден сразу, ...важность координат Y сверху вниз, X с лева направо. Алгоритм - пузырек (начальный курс информатики).
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
19.06.2010, 20:02 | #8 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Это понятно, я сразу пузырек применил, причём сортировал не по координатам а по углу относительно к герою (т.к. он может поворачиваться) и проблема была в ситуации, когда у разных точек имелся один и тот же угол (точки 4 и 5 на втор. рис) Вроде решил, в зависимости от точки, в которую попадает луч (4 точки препятствия) выбираем какую из точек поставить первой. В общем, всем спасибо.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
19.06.2010, 23:50 | #9 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
В принципе тут задача на приоритет выбора вершин, а они берутся по условию нахождения "взора" в одной из четырех секторов системы координат, т.е. case 1 - 4: там пузырек и установка линий по двум ячейкам массива.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
19.06.2010, 23:52 | #10 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Да, я так и поступил
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определение контрольных точек на лице. | hoza_syl | Свободное общение | 21 | 09.06.2010 15:46 |
Эффект падения тени??? | Миша | Общие вопросы Delphi | 6 | 08.04.2010 19:26 |
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) | kcю | Помощь студентам | 0 | 17.11.2009 19:50 |
Определение собственных значений для матрицы 2-го порядка | Игорь777 | Помощь студентам | 0 | 26.04.2009 18:33 |
Ошибка в прорисовке карты для игры в танчики | NSvirus | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 27.02.2009 21:08 |