Extremator
offline
Опыт:
40,008Активность: |
Вопрос к знатокам (проверка области на содержание юнита/точки)
Обычно я делаю так... set Point = (...) и потом удаляю
если я проверяю точку то всё понятно... а если я проверяю содержит ли область юнита, то что проверяется сам триггер? юнита в области? ... или же точку под ним? (которая может утекать ... или нет?) |
13.12.2011, 09:42 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Extremator:
Проверка ForGroup происходит без точек. Если делать через GUI( ForGroupBJ ), то там по стандартам утекает созданная группа. Перед вызовом надо устанавливать переменную bj_wantDestroyGroup на тру значение, если область в дальнейшем не задействована, да бы утечек не возникало. |
13.12.2011, 09:55 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
|
13.12.2011, 09:59 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
гляди функции из гуи в джаззе, и увидишь есть там утечки или нет |
13.12.2011, 09:59 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
я просто делаю триггерный мув юнита и проверку на то что он ещё в пределах карты...
ну что бы всякие кнокбеки не выкинули меня за карту... я так понял, что легче проверять точку куда хочу сдвинуть на то входит ли он в область, или нет... верно?
Extremator добавил: 16GB: в том то и дело что я этого не понимаю... поэтому и спрашиваю у вас тут :( |
13.12.2011, 10:01 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
Extremator:
если ты двигаешь через setunitposition то он не вылетит по любому, а если SetUnitX/Y то юзай вот
юзается так
|
13.12.2011, 10:03 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Extremator:
Проверку с группой не путай, в любом случае, есть ли твоя проверка или нет - группа она создается, если в аргументах вызова не передается перменная с уже имеющейся группой.
Тут два способа:
>
Делай по второму способу
MyRtZ добавил:
~16GB:
Эти операции вносятся в переменную, в функции проверки их не используют, если задействована стрела, фаербол или др. объекты которые перемещаются каждые (0.01-0.02), это снижает нагрузку
MyRtZ добавил:
Я в совей карте это делал так:
Если UnitXY возвращает true, то юнит ремувится, за карту вылитали только снаряды |
13.12.2011, 10:25 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
yellyex
offline
Опыт:
4,667Активность: |
|
13.12.2011, 10:28 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
16GB:
для успешной проходимости я отключаю колюзию юнита перед тем как его сместить... т.е. - я могу выталкнуть его за карту... MyRtZ:
ну а если я буду не юнита проверять на наличие в области... а создам точку в позиции юнита... и проверю входит ли она в область "игровая карта" ... группа же не создаётся? |
13.12.2011, 10:31 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Extremator:
не создается. А вообще лучше используй метод проверки предоставленный 16GB.
MyRtZ добавил: сейчас напишу для тебя упрощенную функцию |
13.12.2011, 10:35 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
группа не нужна, локация тоже. Надо 2 координаты которые получаются через GetUnitX/Y и 4 значения, которые получаются через GetRectMax/MinX/Y |
13.12.2011, 10:35 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
короче я делаю вот так вместо (Triggering Unit) у меня конкретный юнит из переменной я просто вяреза всё кроме основной сути моих действия косаемых движения |
13.12.2011, 10:40 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Не разбираешься в Jass? |
13.12.2011, 10:43 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
MyRtZ:
так точно, Сир :D |
13.12.2011, 10:44 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Профессионал написал бы так:
Это легко используется через "CustomScript". |
13.12.2011, 10:45 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
MyRtZ:
знаю... тогда легче переходить на Jass... а я не хочу... поэтому стараюсь делать как можно более правельно и безутечно на GUI |
13.12.2011, 10:46 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
Сейчас научу) |
13.12.2011, 10:46 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,008Активность: |
MyRtZ:
не нада :D мне бы только знать что я правельна делаю, и всё |
13.12.2011, 10:47 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
массивы работают чуть медленнее чем обычная переменная, памяти потребляет столько же или чуть больше. Доступа по индексу и циклической обработки тут нигде нет, и используются дефайны. У меня такой вопрос - чем же в данном случае предпочтительнее массив?
FellGuard добавил: имхо первый вариант был лучше той пляски с бубном, чем второй с дефайном |
13.12.2011, 10:48 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MyRtZ
offline
Опыт:
6,530Активность: |
FellGuard:
Ты сам ответил на свой вопрос:
"памяти потребляет столько же или чуть больше";
Создают "переменные"(как показано на примере) на основе массива через дэфайны. Через дэфайны для того чтобы код был понятен |
13.12.2011, 10:49 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|