Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 11.05.2009, 18:55   #16
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Как определить пересечение пути юнита с определенным объектом?

LinePick занимает достаточно приличное количество ресурсов для одной команды, уж поверь на слово. С другой стороны, в твоем варианте тоже есть своя логика. Если у тебя действительно не предвидеться кучи-малы из нескольких сот юнитов на поле боя, возможно твой вариант и лучше. Но сам смотри, если ты пикашь по юниту, то у тебя УЖЕ получается 2 пика. То есть если у тебя на самом деле сотни или даже тысячи объектов, то да, возможно 2 пика вместо перебора 2х тысяч типизированных классов и побыстрее. Но тогда, если хочешь добиться реального преимущества своего алгоритма перед классическим с перебором, пикай не по геометрии, а по радиусу или сфере. Потому что как раз при полигональном варианте лайнпик и начинает тормозить. А у тебя в примере как раз он и используется.

Последний раз редактировалось Amatsu, 11.05.2009 в 19:04.
(Offline)
 
Ответить с цитированием
Старый 13.05.2009, 17:49   #17
stone_evil
ПроЭктировщик
 
Регистрация: 17.10.2006
Сообщений: 170
Написано 18 полезных сообщений
(для 42 пользователей)
Re: Как определить пересечение пути юнита с определенным объектом?

Для потомков, которых подобный вопрос будет также терзать:
для любых зданий геометрический алгоритм пересечения пути юнита с n-угольником, у которого известны координаты вершин (которые по совместительству могут являться waypoint-ами), можно найти здесь http://doc-for-prog.narod.ru/topics/math/crossing.html
Как раз то, что доктор прописал, LinePick в баню!
(Offline)
 
Ответить с цитированием
Старый 13.05.2009, 22:17   #18
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Как определить пересечение пути юнита с определенным объектом?

Как сделаешь свой аналог лайнпиика, скажи =) Если он будет быстрее работать чем блитцевский встроенный, тебе все комьюнити, думаю, спасибо скажет =)
(Offline)
 
Ответить с цитированием
Старый 13.05.2009, 22:22   #19
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Как определить пересечение пути юнита с определенным объектом?

Пусть сразу либу на Сях тогда пишет. Математика у блитца не ахти
(Offline)
 
Ответить с цитированием
Старый 14.05.2009, 09:42   #20
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Ответ: Как определить пересечение пути юнита с определенным объектом?

stone_evil, зачем делать сложным, то что проще простого... этак если под каждую мелкую нужду свои либы писать забудешь о чем твоя игра.
Допустим, все юниты на высоте 0, над каждым зданием на высоте допустим h ввешаем пивот, пикающийся по радиусу (примерно со здание) с именем здания (пивот указывает на свое здание), берем текущий юнит и делаем пик от него, но по высоте h, таким образом мы находим только здания на пути юнита, всегда 1 пиком и без полигонов.
(Offline)
 
Ответить с цитированием
Старый 14.05.2009, 13:00   #21
stone_evil
ПроЭктировщик
 
Регистрация: 17.10.2006
Сообщений: 170
Написано 18 полезных сообщений
(для 42 пользователей)
Re: Как определить пересечение пути юнита с определенным объектом?

2 Damp
Здания квадратные\прямоугольные, пивот с радиусом круглый, честно говоря, я не понял твоей интерпретации. Если пивот будет как внутренняя окружность прямоугольника, юниты будут об углы зданий биться, если как внешняя окружность - будут находит пересечение там, где их нет.
Как вариант делать Cube вместо пивота, размером со здание, и Альфу ставить 0, чтобы видно не было. Только я думаю, что чистая математика все равно гораздо быстрее одного LinePick. Субьективное мнение, ни на чем не основанное
(Offline)
 
Ответить с цитированием
Старый 14.05.2009, 17:15   #22
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Ответ: Как определить пересечение пути юнита с определенным объектом?

Как вариант уже предлагал, сделать здания чуть подлиннее и опустить излишки под землю, там и пикать. Ну или лоуполи каркас здания внизу сделать, если здания хайполи и нехочется выставлять им пикмод.
Зря ты так опасаешься пиков )) , они оправдывают свое существование, а если у тебя и правда прям сотни юнитов, то можно "размазать" их по циклам, т.е. не давать "думать" каждый цикл, а скажем по 10-20 юнитов за цикл.
(Offline)
 
Ответить с цитированием
Старый 14.05.2009, 17:35   #23
stone_evil
ПроЭктировщик
 
Регистрация: 17.10.2006
Сообщений: 170
Написано 18 полезных сообщений
(для 42 пользователей)
Re: Как определить пересечение пути юнита с определенным объектом?

2 Damp
Я их не боюсь, если ты почитаешь выше, то я как раз был за пики. Просто я полагаю, что чистая математика будет быстрее, вот и все. А так на будущее всем можно советовать делать Cube под поляной и проверять по ним пиками, это да, самый простой вариант для тех, кто не хочет с формулами заморачиваться.
А так я бы под землей и сделал, только модели не мои, а моделлер уже в другой стране, и завещал поминать его хорошими словами и не трогать.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пересечение объектов AndruXa 3D-программирование 15 24.12.2007 06:29
Пересечение отрезка с вертикальным отрезком ABTOMAT Математика 0 19.12.2007 23:57
Пересечение отрезка с масивом отрезков SBJoker Математика 6 13.12.2007 14:15
Пересечение лини и окружности. HolyDel Полезные функции 2 11.02.2007 15:33
Пересечение HolyDel Математика 3 04.01.2007 04:21


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com