[Вопрос] Rect vs Region
|
|
FatalBlade | Дата: Вторник, 02 Октября 2012, 10:24:56 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| И так. Событие Юнит входит в ранее триггерно созданную область Rectangle:
Code function TriggerRegisterEnterRectSimple takes trigger trig, rect Rectangle returns event local region rectRegion = CreateRegion() call RegionAddRect(rectRegion, Rectangle ) return TriggerRegisterEnterRegion(trig, rectRegion, null) endfunction
Ясно что для регистрации события на данную область Rectangle, создаётся переменная типа Region - rectRegion, создаётся новый хэндл. Но ведь существующий ранее Rect тоже является хэндлом. Мне конечно очень интересно, зачем близзарды так накрутили, что получилось что создаются 2 хэндла на 1 область, но не в этом суть темы. Раз уж мы получаем 2 хэндла, событие регистрируется на созданный Регион rectRegion, и этот регион не будет никуда двигаться по ходу игры... то почему бы не удалить 1 из хэндлов, а именно Rect под название Rectangle? Ведь он больше не нужен, поскольку используется Регион. Ваши мнения... И ещё. Как вычислить саму область в которую зашёл юнит?
|
|
|
|
Ty3uK | Дата: Вторник, 02 Октября 2012, 10:42:51 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| сохранять регион и сравнивать его с GetTriggeringRegion()
столкнулся с этим когда лепил движение криповДобавлено (02 Октября 2012, 10:42:51) --------------------------------------------- скажу еще проще - рект является простой плоской фигурой, не имеющих событий, юзабельна как вспомогательное средство (набрать объекты не по радиусу, а в прямоугольнике)
регион - объект с событиями
|
|
|
|
FatalBlade | Дата: Вторник, 02 Октября 2012, 10:47:09 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Ty3uK, ок. Значит при создания региона и присваивания ему события, я могу удалить рект, так?
|
|
|
|
Ty3uK | Дата: Вторник, 02 Октября 2012, 11:17:17 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| да если я ничего не путаю
|
|
|
|
FatalBlade | Дата: Вторник, 02 Октября 2012, 11:18:18 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Всё, с этим разобрался. Теперь как вычислить высоту платформы? Дело в том что то что я поднимаю её в редакторе, не меняет её параметр высоты. Я использовал функцию GetDestructableOccluderHeight(dest). У всех платформ неважно на какую высоту я поднял их в редакторе с помощью Ctrl+PageUp, высота равна 0. Я проверил с дебагмесадж.
|
|
|
|
збс | Дата: Вторник, 02 Октября 2012, 11:38:12 | Сообщение # 6 |
5 уровень
Группа: Проверенные
Сообщений: 102
Награды: 0
Репутация: 52
Блокировки:
| Quote (FatalBlade) Всё, с этим разобрался. Теперь как вычислить высоту платформы? Дело в том что то что я поднимаю её в редакторе, не меняет её параметр высоты. Я использовал функцию GetDestructableOccluderHeight(dest). У всех платформ неважно на какую высоту я поднял их в редакторе с помощью Ctrl+PageUp, высота равна 0. Я проверил с дебагмесадж. помести туда юнита и проверь его Z.
Я н нфг.
|
|
|
|
Ty3uK | Дата: Вторник, 02 Октября 2012, 11:47:24 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| координату платформы запиши, создай дамми и возьми его высоту
|
|
|
|
SirNikolas | Дата: Вторник, 02 Октября 2012, 15:27:54 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) Значит, при создании региона и присваивании ему события, я могу удалить рект, так? Нет. Регион хранит ссылки на области (ректы). Если ты удалишь область, триггер не будет запускаться.
|
|
|
|
Ty3uK | Дата: Вторник, 02 Октября 2012, 15:31:33 | Сообщение # 9 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Quote (Ty3uK) если я ничего не путаю
|
|
|
|