Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Определение стен. Персонажи гуляют по утлочкам. Посоветуйте, как... (http://www.flasher.ru/forum/showthread.php?t=96564)

Bорон 01.06.2007 22:00

Доброго времени суток.

Столкнулся со следующей проблемой.
Есть флешка с городом, опоясаным улицами и мостами.
По этим чудесам архитектуры должны чинно прогуливатся жители.
Ну... прогуливатся я жителей с грехом пополам научил. Иногда у них даже получается это делать вполне чинно. Что бы это не значило...
Проблема: Как заставить их прогуливатся именно по улочкам а не где придется?

Тоесть как определть находится ли персонаж в рамках некой геометрической фигуры? Не квадратной. hitTest я так понял только прямоугольники определяет, да?

Подскажите как это делается?

Нашел флешку с молью по лабиринту бегающей... во вложении прикрепил.
Попробовал разобрать и разхобратся - не осилил.

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

С уважением. Ворон.

что то вложение не вложилось....
выложил архив по адресу
http://www.nightfolk.net/work/detect_walls.zip

BigDan 01.06.2007 23:00

забиваешь в массив грани стен и при движении проверяешь _x _y.
з.ы. два поста создавать не обязательно

Kikasso 02.06.2007 00:23

По-моему там очень просто. Если моль выбежала на стенку, (hitTest) то она поворачивает направо под 90°. И все.

Dr.OH 02.06.2007 11:27

по-моему здесь все совсем не просто... я видел решение примерно такой же проблемы но только для игры на OpenGL, так там как это было сделано - есть некий граф, описывающий весь твой город у каждой улочки задается ширина и сопостовляется с ребром графа и люди у тебя должны будут гулять исключительно в рамках этого графа, т.о. они у тебя ни на что натыкаться не будут и у них будет готовый маршрут прогулок... по-моему как-то так.
а если по _x и _y определять, то это будут не прогуливающиеся люди а роботы-мячики, которые будут гулять от стены до стены ;)

Bорон 02.06.2007 15:02

BigDan:
Цитата:

забиваешь в массив грани стен и при движении проверяешь _x _y.
Если мы имеем дело с сложной геометрией улиц. (Это не улицы... это кошмар архитектора, да еще и в изометрии (визуально... все естественно двухмерное)...) то математическое описание улиц предствляет собой определенную проблему. Процесс, как минимум, трудоемкий. Так как время на выполнение проекта очень ограничено (в понедельник надо здать...) то это решение фактически отпадает. Возможно ли использовать нарисованые во флеше многоугольники для определения територии по которой персонаж может (или, соответственно, не может) передвигатся.
Цитата:

з.ы. два поста создавать не обязательно
Если я это сделал то не нарошно, и даже умудрился незаметить... Прошу меня извинить.

2Kikasso:
Цитата:

По-моему там очень просто. Если моль выбежала на стенку, (hitTest) то она поворачивает направо под 90°. И все.
У меня он поворачивает на 180 градусов. Что бы не ошибится :)
Но проблема в том что hitTest работает только с прямоугольными областями (или я когда писал ограничение с использованием hitTest нахамутал) А там ни о каких прямоугольных областях и речи не идет. Улицы идут в кривь в кось и по дуге. В теории коннечно можно заполнить все это крохотными квадрантными мувиками и по очереди проверять их все... но ПОЩАДИТЕ пользователя. Ему страничку смотреть а не красивое меню. А с такой нагрузкой - может не получится.

2Dr.OH:
1. В OpenGL у нас городж строится по мат описанию. У меня нет. Создавать мат описание улиц - слишком много времени понадобится. Нет возможности. :(

Цитата:

а если по _x и _y определять, то это будут не прогуливающиеся люди а роботы-мячики, которые будут гулять от стены до стены
Так и должно быть. По теории вероятности они время от времени поворачивают, реагируют на курсор, выполняют одно из некоторой коллекции действий. Единственное что мне не удается - справится с этими самыми улицами. Они упорно с них убегают. :(

Так как насчет статьи или примера?
Кто то пробовал декомпилировать пример.
У меня сложилось впечатление что толи он зашифрован, толи я непроходимый идиот. Последнее вероятнее. Но хотелось бы убедится...


И... HitTest работает с ПРЯМОУГОЛЬНЫМИ областями, или нет?

Kikasso 02.06.2007 18:26

Цитата:

Сообщение от Bорон
У меня он поворачивает на 180 градусов. Что бы не ошибится :)
Но проблема в том что hitTest работает только с прямоугольными областями

Лчше не на 180, а на случайный угол, и перед тем как подвинуть. То есть если новая координата не годится, вместо перемещения поворачиваем.
У hitTest есть параметр shapeFlag - посмотрите в хелпе.

Bорон 02.06.2007 19:20

спасибо, сейчас попробую.


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

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