XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
MaHBe

offline
Опыт: 5,910
Активность:
Рект
Возможно ли создать область перпендикулярную земле?Я думаю это можно сделать с помощью вжасс структур, но я не знаю принцип действия областей. И как выполнить функции вхождения\выход в\из облас(ть\ти)? Буду благодарен если кто-то объяснит.
Старый 22.09.2010, 15:59
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
MaHBe:
Возможно ли создать область перпендикулярную земле?
область- нет
MaHBe:
Я думаю это можно сделать с помощью вжасс структур
верно.
MaHBe:
я не знаю принцип действия областей
4 точки по координатам и сравнение соответствующих координат юнита и этих точек
Старый 22.09.2010, 16:02
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
это типо опеделённый высоты или что? если да то нет именно рект нет
Старый 22.09.2010, 16:03
MaHBe

offline
Опыт: 5,910
Активность:
Clamp:
4 точки по координатам и сравнение соответствующих координат юнита и этих точек
Можно чуть подробнее?
MaHBe добавил:
16GB:
это типо опеделённый высоты или что? если да то нет именно рект нет
А как можно?
MaHBe добавил:
Я имел ввиду что-то типа ректа.
Старый 22.09.2010, 16:06
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
обьясни задачу скорее всего тебе нужно проверять высоту юнита пролетающего через линию или как?
Старый 22.09.2010, 16:06
ScorpioT1000
Работаем
offline
Опыт: отключен
тебе надо чтобы вход в рект регистрировался только на опр. высоте чтоли? :)
просто сравнивай при входе абсолютную высоту юнита с высотой рельефа..
globals
    location GL = Location(0,0)
endglobals

function GetZ takes real X,real Y returns real
    call MoveLocation(GL , X , Y)
    return GetLocationZ(GL)
endfunction

function GetUnitZ takes unit u returns real
    call MoveLocation(GL , GetUnitX(u) , GetUnitY(u))
    return GetUnitFlyHeight(u) + GetLocationZ(GL)
endfunction
Старый 22.09.2010, 16:07
MaHBe

offline
Опыт: 5,910
Активность:
ScorpioT1000:
тебе надо чтобы вход в рект регистрировался только на опр. высоте чтоли? :)
Не совсем. Проверка что юнит вошел в (Что-то типо области) в которой указаны Хмин, Хмакс,Умин.Умакс,Zмин,Z макс.
Старый 22.09.2010, 16:10
ScorpioT1000
Работаем
offline
Опыт: отключен
рект не умеет хранить больше 4 координат. можно создать свой "рект", на vjass например
Старый 22.09.2010, 16:27
MaHBe

offline
Опыт: 5,910
Активность:
Я о том и говорю.Я офк понимаю что не может хранить))) Вот и спросил, как примерно это можно реализовать)
Старый 22.09.2010, 16:31
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
globals
rect R
real GetRectMinZ
real GetRectMaxZ
endglobals

function Rect_Create takes real xmin,real ymin,real ymax,real zmin, real zmax returns rect
GetRectMinZ = zmin
GetRectMaxZ = zmax
return Rect(xmin,ymin,xmax,ymax)
endfunction

function RectContainsCoordsEx takes rect r,real x,real y,real z returns boolean
return (GetRectMinX(r) <= x) and (x <= GetRectMaxX(r)) and (GetRectMinY(r) <= y) and (y <= GetRectMaxY(r)) and GetRectMinZ > z and GetRectMaxZ < z
endfunction
Старый 22.09.2010, 16:35
agentex

offline
Опыт: 34,834
Активность:
делать через переменные, проверять находится ли юнит между высотой z1 и z2
Старый 22.09.2010, 16:36
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Если нужно динамичное - через структуры
Старый 22.09.2010, 16:37
ScorpioT1000
Работаем
offline
Опыт: отключен
AlexKARASb, что это? если надо тыщу ректов с разными высотами?
можно создать свой аналог ректа, но в 3d и аналог функции TriggerRegisterEnterRegion3 для него, но щас "быстро" я это не набросаю
Старый 22.09.2010, 16:39
MaHBe

offline
Опыт: 5,910
Активность:
AlexKARASb, О, спасибо, оказалось все очень просто:)Перепишу на структуры и получится то что нужно
MaHBe добавил:
Тему пока что не офф, я все проверю, возможно будут вопросы хотя я теперь понял принцип ректов.
Старый 22.09.2010, 16:41
agentex

offline
Опыт: 34,834
Активность:
структуры и есть переменные
Старый 22.09.2010, 16:42
MaHBe

offline
Опыт: 5,910
Активность:
agentex:
структуры и есть переменные
Я знаю))
MaHBe добавил:
Но с ними работать удобнее
MaHBe добавил:
Всмысле с структурами
Старый 22.09.2010, 16:44
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
что это?
показ альтернативного рект чека в 3д для одного ректа
если надо тыщу ректов с разными высотами?
Создаем переменные дабы запомнить координаты на каждый из тысячи ректов.
можно создать свой аналог ректа
он и есть, чек ректа с добавлением чека высот
Старый 22.09.2010, 16:47
ScorpioT1000
Работаем
offline
Опыт: отключен
Создаем переменные дабы запомнить координаты на каждый из тысячи ректов.
интересно, как ты это сделаешь без хеш-таблиц :) простого решения нет собственно
ScorpioT1000 добавил:
он и есть
*facepalm*
Старый 22.09.2010, 16:52
MaHBe

offline
Опыт: 5,910
Активность:
ScorpioT1000, Мне не очень это важно т.к ректов таких будет не много. А вообще было бы интересно узнать качественную реализацию.
Старый 22.09.2010, 17:02
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
странные придирки.. не к сабжу относящиеся.
аттач в массиве через хендл к примеру -.-
rect array R
real array Zmin
real array Zmax

function Rect_Create takes real xmin,real ymin,real ymax,real zmin, real zmax returns rect
local rect r = Rect(xmin,ymin,xmax,ymax)
local integer i = GetHandleId(r)-1048000
R[i] = r
Zmin[i] = zmin
Zmax[i] = zmax
return r
endfunction
Либо структурно через инт возрастающей при вызове итд
Старый 22.09.2010, 17:08
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 05:00.