Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создать зону видимости в игре (http://www.flasher.ru/forum/showthread.php?t=185812)

vitamin4er 21.10.2012 23:00

Создать зону видимости в игре
 
Здравствуйте!
Начну с изложения мыслей - так понятнее будет...
Есть человечек - у него должна быть определенная зона видимости, то есть за спиной все затемненное, и через углы он не смотрит. Вот как вижу это я: нарисовать зону видимости, создать маску, но возникают две проблемы! - зона видимости однообразная; - и через углы он все-таки смотрит...
Подскажите, как бы это исправить...или другой менее затратный способ доступным языком=) без особой терминологии... Заранее спасибо!

alatar 22.10.2012 04:06

Вид сверху?

caseyryan 22.10.2012 07:25

Цитата:

Подскажите, как бы это исправить...или другой менее затратный способ доступным языком=) без особой терминологии... Заранее спасибо!
Тут без математики не обойтись. Не так просто реализовать все это.

nuToH 22.10.2012 12:21

Вложений: 1
без "терминологии" никак. самый простой способ:
определить все препятствия на карте геометрически (как многоугольники)
разбить пространство вне препятствий на треугольники (триангуляция Делоне)
треугольники с общей стороной соединить ссылками друг на друга
написать простейший рейкастер через треугольники

нечто подобное когда то написал, приложу к сообщению. га***код не прилагается.) но если интересно - могу поискать и поделиться.

gagaga 22.10.2012 18:35

если игра с физикой, то рэйкастингом определяем зоны и затемняем шейдером...

C4Grey 23.10.2012 17:46

1. Маска, для которой устанавливается еще одна маска - то, что персонаж может увидеть(проще говоря - либо специальная карта видимости, либо просто все то, что не является препятствием, при этом подразумевается что в местах наличия препятствий графика маски видимости не заполнена, для корректного наложения маски).
2. Или же рисовать препятствия поверх спрайта зоны вивдимости.
Но это чисто визуализация, на уровне программирования игрового ИИ тебе все равно придется столкнуться с алгоритмами, подобными тому, что описывает nuToH.

vitamin4er 24.10.2012 10:01

Цитата:

Сообщение от alatar (Сообщение 1100778)
Вид сверху?

да, сверху

Добавлено через 4 минуты
Цитата:

Сообщение от nuToH (Сообщение 1100810)
без "терминологии" никак. самый простой способ:
определить все препятствия на карте геометрически (как многоугольники)
разбить пространство вне препятствий на треугольники (триангуляция Делоне)
треугольники с общей стороной соединить ссылками друг на друга
написать простейший рейкастер через треугольники

нечто подобное когда то написал, приложу к сообщению. га***код не прилагается.) но если интересно - могу поискать и поделиться.

ОЧЕНЬ интересно=) Если Вам не трудно

strangedk 24.10.2012 16:13

Вот в помощь насчет пересечений и математики:
http://tonypa.pri.ee/vectors/


Часовой пояс GMT +4, время: 01:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.