Сейчас 12:05:27 Вторник, 26 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] 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)
---------------------------------------------
скажу еще проще - рект является простой плоской фигурой, не имеющих событий, юзабельна как вспомогательное средство (набрать объекты не по радиусу, а в прямоугольнике)

регион - объект с событиями


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Вторник, 02 Октября 2012, 10:47:09 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ty3uK, ок. Значит при создания региона и присваивания ему события, я могу удалить рект, так?

 

Ty3uKДата: Вторник, 02 Октября 2012, 11:17:17 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
да
если я ничего не путаю


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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
Блокировки:
координату платформы запиши, создай дамми и возьми его высоту

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Вторник, 02 Октября 2012, 15:27:54 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
Значит, при создании региона и присваивании ему события, я могу удалить рект, так?
Нет. Регион хранит ссылки на области (ректы). Если ты удалишь область, триггер не будет запускаться.


 

Ty3uKДата: Вторник, 02 Октября 2012, 15:31:33 | Сообщение # 9
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Quote (Ty3uK)
если я ничего не путаю
dunno


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz