![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Каст в видимую цель
Можно ли заставить кастовать только в цель, находящуюся в зоне видимости кастера? То-есть которая нахоится где то в 100 градусах в каждую сторону от линии взгляда. Ниже выкладываю картинку. Точка - кастер, черная линия - линия взгляда, зеленая зона - можно кастовать, красная соответственно нельзя.
http://img442.imageshack.us/my.php?image=62415376sz7.jpg |
|
|
![]()
Hellfim
Новичок
offline
Опыт:
81,783Активность: |
Death of God, ну можно пикать всех юнитов в точке, если группа пустая, то прибавлять расстояние и опять пикать.
|
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Либо ты меня не понял, либо я тебя =) Я имел ввиду что бы запретить кастовать задом)) Как в вове, "Вы смотрете не в ту сторону". В варике есть подобие, кастующий всегда поворачивается лицом к цели. Если отключить авто поворот, то придется ловить цель только на линии взляда. Поэтому и хочу сделать такую систему. |
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Death of God, на тебе извращенную идею:
Площадь окружности равна ПиРадиусвквадрате (S=P*r^2) (пи=3.14) Допустим что у нас юнит смотрит в области 180 градусов. Значит по формуле S = 3.14*100^2 (100-дальность взгляда(радиус)) Эта площадь есть 100% Площадь сегмента будет рассчитана так: 360 градусов = 100% 180 градусов = Х Х=(180*100)/360=41% Терь умножаем нашу площадь на 0.41: S*0.41=Странное число - это и есть та область что тебе надо (по идее =)) Остается проверить, если юнит находится в этой области - то делать что тебе надо..Надеюсь что ни в чем не ошибся)) А если че, то все валите на усталость) P.S.: если по твоей картинке, то там не круг должен быть, а треугольник, ибо у человека боковое зрение идет по прямой, а не по окружности. А делать так же, через площадь, но треугольника..у тебя 2 стороны будут равны, высота треугольника будет равна максимальному расстоянию, на сколько кастер может смотреть. Высчитаешь площадь, проверишь если юнит находится в этой области, сделаешь что надо. P.P.S.: если пойдешь через треугольник, то заметь, что чем больше высота (дальность зрения кастера), тем уже становится треугольник (боковое зрение становится меньше), т.е. кастер смотрит дальше, но исключительно вперед. Так что совет - юзай круг - более реалистично. Отредактировано Vampirrr, 08.01.2009 в 02:25. |
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Vampirrr, Спасибо! Я догадывался, что просто не будет =)
Если я правильно понял, то плучится следующее: Нажимаешь на иконку, выбираешь цель. Дальше идет: Юнит использует абилку Алибка = таму-то По формуле идет высчитывание площади взгляда кастера, положение цели на площади взгляда кастера, а так же высчитывается площадь разрешенного каста (куда можно кастовать). После чего идет проверка, находится ли точка полжения цели на разрешенной для каста площади. Если да - каст Если нет - вывод сообщения о невозможости. PS: Если добавить к этому возможность, что за время каста спелла, цель выйдет из доступной площади, то отменить каст - получится: запустить цикл проверки положение цели относительно площади (пересчет площади не нужен, т.к. во время каста кастер не двигается) Если добро - пересчитать заного Если нет - отменить каст. А так же отключить цикл если каст был завершен. Я правильно понял? =) И мне придется для каждого спелла писать отдельно, или можно использовать один код? Или хотя бы фрагментарно дописывать? И выдержит ли такое издевательство движок, если так будет высчитываться одновременно 10 юнитов? =) |
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Death of God, товарищи из близарда любят прямоуголники и про круги они забыли..следовательно все выходит совсем не так, как хотелось бы..а верней никак не выходит, вообще..
Отредактировано Vampirrr, 08.01.2009 в 22:24. |
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
=(((( И никак нельзя сделать хотя бы подобное? Может что - то с прямоугольником получится? Что бы хотя бы запретить кастовать из зада. |
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Death of God, это уже только завтра буду пытаться, на седня моск отключен..
|
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Ок. Спасибо. |
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Vampirrr, странно, что вар не воспренимает круги, ведь площадь физической модели он считает как раз по кругу =/. Да и аое спеллы дамагают вокруг героя и чпеллы с целью земля тоже дамагают по кругу... Может вар пойемт круг через радиус с началом от кастера?
Может попробовать сделать тоже самое но с квадратом? Или треугольником, основание которого будет означать максимальную дальность заклинания? Отредактировано Death of God, 09.01.2009 в 17:53. |
|
|
![]()
Death of God
Задрот
offline
Опыт:
988Активность: |
Вопрос все еще в силе... |
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Death of God,
Цитата:
=) а по поводу вопроса твоего все еще думаю, не было времени пока сделать.. |
|
|
|
![]()
vinny
offline
Опыт:
39Активность: |
Цитата:
они дамажат прямоугольниками |
|
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
vinny, ага, и области типа "оффсет 500 вокруг юнита" - тоже прямоугольник?
|
|
|
![]()
vinny
offline
Опыт:
39Активность: |
Vampirrr
насчет этого точно не знаю ты сам попробуй юзани большой аое спелл в игре, там все четко видно, что за кругом выделяются юниты. |
|
|
![]()
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
vinny, ладно, поверю..но проблему это не решает( пока что-то ничего путевого не выходит..
|
|
|