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

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

Ответ
 
Warden
:::...
offline
Опыт: 26,106
Активность:
Вопрос
Объясните мне пожалуйста, как работает эта функция: RectContainsCoords
Я знаю что она делает, но как ей пользоваться?
Старый 02.05.2008, 18:26
adic3x

offline
Опыт: 108,439
Активность:
Warden, ТТ =/, ты меня расстроил=/
Код:
function RectContainsCoords takes rect r, real x, real y returns boolean
    return (GetRectMinX(r) <= x) and (x <= GetRectMaxX(r)) and (GetRectMinY(r) <= y) and (y <= GetRectMaxY(r))
endfunction
Старый 02.05.2008, 19:49
Warden
:::...
offline
Опыт: 26,106
Активность:
Ты за кого меня держишь? или ты типа пошутил?
Я просил пример работы функции а не циатату из BJ...
Старый 04.05.2008, 20:54
J
expert
offline
Опыт: 48,447
Активность:
да, и правдо настроение упало...
эм... ну если x больше мин x и меньше макс x, аналогично с игриками... че непонятно - непонятно...
Старый 04.05.2008, 21:03
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Warden
Хм... Тут просто из названия понятно, что она делает. Указываешь ей рект, координаты (х,у) и она возвращает true если указанные координаты находятся в этом ректе, иначе false.
Действительно, что тут может быть непонятно...
Старый 04.05.2008, 22:06
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
да, и правдо настроение упало...

плюс тыща!)

Цитата:
но как ей пользоваться?

Ну дыг.. так и пользуешься.. как и RectContainsUnit...

ScorpioT1000 добавил:
Цитата:
Я просил пример работы функции а не циатату из BJ...

Ну напр ты хочешь узнать содержится-ли что-то в ректе, задаешь в real x, real y координаты этого чего-то и он те грит да или нет. Но ваще там для каждого свое есть и его хватает.. мб не для всего?..
Старый 05.05.2008, 03:05
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Ты за кого меня держишь?

если ты не можешь понять устройство этой функции - забей на жасс...
Цитата:
да, и правдо настроение упало...

+1)
Код:
if RectContainsCoords(r, x, y)then
Старый 05.05.2008, 11:16
vuzya

offline
Опыт: 464
Активность:
по сабжу - возвращаэт труЪ если точка внутри прямоугольника
а вообще +1 к ADOLF
Старый 05.05.2008, 15:55
Warden
:::...
offline
Опыт: 26,106
Активность:
Да не... Я просто видел, что эта функция как-то используется чтобы отлавливать столкновение прожетила с объектами...
Старый 06.05.2008, 11:12
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Я просто видел, что эта функция как-то используется чтобы отлавливать столкновение прожетила с объектами...

надо было с этого начинать, а вообще хз, кто так делает - нуб
отлавивать столкновения либо ГроупЕнимЮнитсИнРанж или через кастомный поиск по массиву обьектов, тут слоржнее и хз вообще как да что)
Старый 06.05.2008, 14:08
Warden
:::...
offline
Опыт: 26,106
Активность:
Нет там както мутят, через эту функцию проверяют как-то проходимость... в Azeroth GrandPrix такое есть, помоему у героя SealMaster тоже есть такая тема...
Старый 06.05.2008, 18:10
akkolt

offline
Опыт: 13,826
Активность:
Функцию я понял, но вот что это такое: (GetRectMinX(r) ?

akkolt добавил:
И ещё: как сделать, чтоб триггер не определял, есть ли там что-то, а проверял, где именно юнит?
Старый 06.05.2008, 18:24
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
в Azeroth GrandPrix такое есть

все что есть в азерот гран при - кусок гуишного говнокода, крайне не рекомендую брать пример оттуда
Цитата:
SealMaster

что то мне подсказывает название что это толи поделка зибады, толи сергея многогодовалой давности, опять же тогда многое делалось через заднее место

обьясни по нормальному что тебе именно нужно?
Старый 06.05.2008, 18:37
Warden
:::...
offline
Опыт: 26,106
Активность:
Цитата:
все что есть в азерот гран при - кусок гуишного говнокода, крайне не рекомендую брать пример оттуда

Там какраз неплохой Jass и оттуда есть что взять - можт тогда поможешь мне и выложишь примерчик, такой чтобы отлавливалось столкновение прожектайла со склонами, декорами(не только разрушаемыми), рельефом и юнитами? =)
Старый 06.05.2008, 20:32
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
Цитата:
Сообщение от Warden
Там какраз неплохой Jass и оттуда есть что взять - можт тогда поможешь мне и выложишь примерчик, такой чтобы отлавливалось столкновение прожектайла со склонами, декорами(не только разрушаемыми), рельефом и юнитами? =)


извеняюсь за оффтоп, но это тянет уже на целую систему, а не примерчик :)
Старый 06.05.2008, 21:18
ScorpioT1000
Работаем
offline
Опыт: отключен
Система - это система, а примерчик - это пример, показывающий на теории как это делать, не путай..
Старый 06.05.2008, 22:20
adic3x

offline
Опыт: 108,439
Активность:
http://xgm.guru/forum/showthread.php?t=15889
как я и обещал я долго буду давать этот спел как семпл по многоим поводам)

Цитата:
Там какраз неплохой Jass и оттуда есть что взять


Код:
function StandardAngle takes real rAngle returns real
    loop
        if ( rAngle < -180 ) then
            set rAngle = rAngle + 360
        elseif ( rAngle > 180 ) then
            set rAngle = rAngle - 360
        else
            exitwhen true
        endif
    endloop

    return rAngle
endfunction


первая попавшаяся функция из гран при... если ты скажешь что это норм код... догадайся обо что я посоветую тебе убиться?)

Цитата:
такой чтобы отлавливалось столкновение прожектайла со склонами, декорами(не только разрушаемыми), рельефом и юнитами? =)


а, действительно, пик деструбов делается через рект
Код:
globals
 rect r_temp=Rect(0., 0., 0., 0.)
endglobals

//...

 call MoveRect(r_temp, a, b, c, d)
 call EnumDestructablesInRect(r_temp, BXfunction, null)


ну скажем так можно получить координаты и тип деструба, а просчитывать колизии другое дело + с дудадами лучше не заморачиваться, т.е. понадобиться самописная бд

ADOLF добавил:
BX - BooleXpr =)))
Старый 07.05.2008, 10:54
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
Цитата:
Сообщение от ADOLF
http://xgm.guru/forum/showthread.php?t=15889
Код:
function StandardAngle takes real rAngle returns real
    loop
        if ( rAngle < -180 ) then
            set rAngle = rAngle + 360
        elseif ( rAngle > 180 ) then
            set rAngle = rAngle - 360
        else
            exitwhen true
        endif
    endloop

    return rAngle
endfunction


))
ну если уж нужно точно сделать ))
Код:
function StandardAngle takes real rAngle returns real
        return rAngle-(rAngle/360)*360
endfunction
Старый 07.05.2008, 17:20
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
ну если уж нужно точно сделать ))

а теперь я скажу что это делать НЕНУЖНО (!!!) вообще
Старый 07.05.2008, 17:23
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
Цитата:
Сообщение от ADOLF
а теперь я скажу что это делать НЕНУЖНО (!!!) вообще

ну это да ) но впринципе иногда нужно для некоторых вычислений(и только вычислений!!!)
Старый 07.05.2008, 17:29
Ответ

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

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

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

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



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