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

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

Ответ
 
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
Создание нескольких точек на расстоянии между объектами
Улучшая камеру для своего проекта Irony of Truth: The Last War столкнулся с такой проблемой:
Для исправления бага с заездом камеры за стены я хочу сделать так:создать несколько точек между юнитом и камерой и дальше делать дальше действия,но запнулся именно на этом пункте(не имею понятия как создать эти точки(нужно штук 6-7))

Отредактировано DragonSpirit, 10.08.2009 в 21:51.
Старый 10.08.2009, 21:45
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
никто не знает ответа?
Старый 11.08.2009, 19:51
ScorpioT1000
Работаем
online
Опыт: отключен
функция Location принимает координаты, возвращает location...
Старый 11.08.2009, 20:04
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
ScorpioT1000, это я знаю,мне нужно создать циклом 6 точек на расстоянии от камеры до героя,это у меня и не выходит...
Старый 11.08.2009, 20:08
ScorpioT1000
Работаем
online
Опыт: отключен
function ... takes ... returns ...
    local real p = <нужное расстояние от камеры>
    local real x = <x твоей камеры>
    local real y = <y твоей камеры>
    local real a = <нужный мировой угол в градусах, например, GetUnitFacing>
    set x = x + p * Cos( a * bj_DEGTORAD )
    set y = y + p * Sin( a * bj_DEGTORAD )
    // теперь в x и y твоя точка в 2D
endfunction
ScorpioT1000 добавил:
Старый 11.08.2009, 20:15
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
ScorpioT1000, хм...
спасибо,но как потом можно будет перевести камеру на одну из этих точек и создать условия с ними?
Старый 11.08.2009, 20:15
ScorpioT1000
Работаем
online
Опыт: отключен
очевидно сохранить гдето значения, потом
native SetCameraPosition takes real x, real y returns nothing
Старый 11.08.2009, 20:17
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
ScorpioT1000, спасибо,попробую,пожалуйста темку пожалуйста не закрывайте...
Старый 11.08.2009, 20:19
ScorpioT1000
Работаем
online
Опыт: отключен
только у камеры, помимо "цели" есть еще "глаз" - откуда идет направление взгляда, но в варе оно представляется в виде двух углов вокруг цели:
SetCameraField(CAMERA_FIELD_ROTATION,значение,0) - это вокруг z
SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK,значение,0) - это вокруг x (если не забыл)
т.е. тебе ее еще нацелить надо будет :)
Старый 11.08.2009, 20:25
J
expert
offline
Опыт: 48,447
Активность:
globals
   location GL = Location(0, 0)
endglobals

function GetTerrainZ takes real x, real y returns real
    call MoveLocation(GL, x, y)
    return GetLocationZ(GL)
endfunction

function func takes unit Hero return nothing
    local real HeroX = GetUnitX()         
    local real HeroY = GetUnitY()
    local real HeroZ = GetTerrainZ(HeroX, HeroY)+GetUnitFlyHeight(Hero)
    local real CamX = GetCameraEyePositionX() 
    local real CamY = GetCameraEyePositionY()
    local real CamZ = GetCameraEyePositionZ()
    local real dis
    local real X
    local real Y
    local real Z
    set HeroX = HeroX - CamX
    set HeroY = HeroY - CamY
    set HeroZ = HeroZ - CamZ
    set dis = SquareRoot(HeroX*HeroX+HeroY*HeroY+HeroZ*HeroZ)
    set HeroX = HeroX/dis
    set HeroY = HeroY/dis
    set HeroZ = HeroZ/dis
    ///////////
    set dis = <растояние от камеры до юнита>
    set X = CamX + dis*HeroX
    set Y = CamY + dis*HeroY
    set Z = CamZ + dis*HeroZ
    ///////////
    set dis = <растояние от камеры до юнита>
    set X = CamX + dis*HeroX
    set Y = CamY + dis*HeroY
    set Z = CamZ + dis*HeroZ
    ///////////
endfunction

Отредактировано J, 11.08.2009 в 21:31.
Старый 11.08.2009, 21:19
Ответ

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

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

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

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



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