Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2005, 13:48
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 11  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
Интересно. Что-то из этого я применю.

Но все же главная проблема заключается не в находения соприкосновения, а в нахождении растояния до него (чтоб ИЕ мог перерасчитывать напрваление движения)

Старый 05.10.2005, 14:03
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
x1 = 0;
x2 = 1;
y1 = 0;
y2 = 1;
trace (Math.sqrt (Math.pow ((x1 - x2), 2) + Math.pow ((y1 - y2), 2)));
Где x1,x2,y1,y2 это координаты центра машин
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.10.2005, 14:05
seeker2005 вне форума Посмотреть профиль Отправить личное сообщение для seeker2005 Найти все сообщения от seeker2005
  № 13  
Ответить с цитированием
seeker2005

Регистрация: Sep 2005
Адрес: Tomsk
Сообщений: 39
Отправить сообщение для seeker2005 с помощью ICQ
полярная система координат и массив [радиус векотор, угол] для пути движения или уравнение кривой....
если знаешь хоть чуток математику, поймешь,что с помошью уравнения можно нарисовать даже самую сумашедшую кривую
__________________
Голова она не только для того, чтобы кашу есть...

Старый 05.10.2005, 14:35
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 14  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
iNils - перечитай главный вопрос

seeker2005 - эт анриал, описать таким способом кривую можно, но я просто за*бусь это делать, для всех карт.

Старый 05.10.2005, 14:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 15  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Перчитал и не понял чего ты хочешь.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.10.2005, 15:09
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 16  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
Посмотри на рисунок.
На нем изображены два мувика IE и ROAD

IE это просто круг; форма его не имеет никакого значения, нужны только его координаты на сцене

ROAD - мувик со сложной формой (прямоугольник с стертой в ней областью)

IE находится в стертой области ROAD

Надо найти растояния от IE до нестертой области ROAD по вертикали и горизонтали в 4-ех напрвлениях (как показанно на рисунке)

Функция которая написана в самом начале - это и делает. Но она жрет много ресурсов.

Хотелось бы узнать возможно ли найти эти 4-е растояния каким-либо другим способом.

Старый 05.10.2005, 15:15
seeker2005 вне форума Посмотреть профиль Отправить личное сообщение для seeker2005 Найти все сообщения от seeker2005
  № 17  
Ответить с цитированием
seeker2005

Регистрация: Sep 2005
Адрес: Tomsk
Сообщений: 39
Отправить сообщение для seeker2005 с помощью ICQ
Я тоже не совсем понял, чего тебе надо...
Если тебе надо кратчайщее растояние - то теорема Пифагора и решение тебе iNils уже дал. Если по кривой - кроме того метода, который я тебе предложил, я не знаю(
В любом случае, когда ты работаешь на плоскости с одним направлением движения - самый оптимальный способ - полярная система координат. Ну а способы описания - либо дискретный в массиве (плюсы - не надо уравнения выдумывать), либо сполшной - уравнение
__________________
Голова она не только для того, чтобы кашу есть...


Последний раз редактировалось seeker2005; 05.10.2005 в 15:18.
Старый 05.10.2005, 15:45
leo99 вне форума Посмотреть профиль Отправить личное сообщение для leo99 Найти все сообщения от leo99
  № 18  
Ответить с цитированием
leo99

Регистрация: Oct 2005
Сообщений: 27
Ну если вам непонятно мое описание, тогда всмотритесь в Script

Он создает масив (mass) в котором будут возвращенны эти 4-растояния (mass["R"], mass["L"], mass["D"], mass["U"]), каждое растояние расчитывается по одному принципу, например для mass["R"] - растояние от IE до ROAD по оси +Х
//movie._x, movie._y ==== _root.IE._x, _root.IE._y

for (i=1; i<=_root.road._width; i++)
{
if (_root.road.hitTest(movie._x+i, movie._y, true)) {break;}
}
mass["R"]=i;


Последний раз редактировалось leo99; 05.10.2005 в 15:52.
Старый 06.10.2005, 06:47
seeker2005 вне форума Посмотреть профиль Отправить личное сообщение для seeker2005 Найти все сообщения от seeker2005
  № 19  
Ответить с цитированием
seeker2005

Регистрация: Sep 2005
Адрес: Tomsk
Сообщений: 39
Отправить сообщение для seeker2005 с помощью ICQ
Максимально быстрый способ - при загрузки игры проходись по кривой трасы hitTest, записывай координаты х и y в массив, потом просто когда надо будет определить растояние, будешь брать значение из массива...
Массив организовывай по какой либо переменной. Например по Х
тогда каждому значению X у тебя будет соответствовать набор (массив) значений по Y (трасса ведь одну и ту же точку по X может пересекать несколько раз по Y)...
После всего этого просто алгоритм обработки вложенных массивов в заданной точке X
Когда получишь значение по Y, используя его можешь найти и разницу по Х....
если этот поиск будет долгим, то тогда сделай еще один массив точек, только сортированный по Y...

Точности в пиксел тебе более чем достаточно, поэтому не парься с дробями, да и вычисления проще будут))
__________________
Голова она не только для того, чтобы кашу есть...

Старый 06.10.2005, 09:30
ultraflasher вне форума Посмотреть профиль Найти все сообщения от ultraflasher
  № 20  
Ответить с цитированием
ultraflasher
Banned
[03.10.2005]

Регистрация: Nov 2003
Сообщений: 425
Искуственный интелект — IE, ржу нимагу

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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