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

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

Закрытая тема
 
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
Функция создания юнита с поворотом
Есть ли такая функция,по типу"CreateNUnitsAtLocFacingLocBJ"только для 1 юнита.К примеру мне необходимо объявить переменную типа "Боевая Единица",и приравнять ее к вышеуказанной функции,но она для нескольких юнитов,а мне нужно для 1.То есть функция создающая юнита и поворачивающая к точке.Заранее всем спасибо.
Старый 08.05.2012, 23:01
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
((код jass
native CreateUnit takes player id, integer unitid, real x, real y, real face returns unit
))
Не?
Старый 08.05.2012, 23:06
Hanabishi
COOL STATUS
offline
Опыт: отключен
Блин, ну есть же полные списки всех функций. Можно ведь раскрыть бж и посмотреть, как она устроена. Плюс о назначении большинства функций можно по названию догадаться.
native CreateUnit takes player id, integer unitid, real x, real y, real face returns unit
Старый 08.05.2012, 23:06
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
Hanabishi, я просто хотел чтобы
функция создающая юнита и поворачивающая к точке.
Я хз как вычислить тот поворот.
Старый 08.05.2012, 23:13
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
Sladkoegka,
Код:
Atan2(Y1-Y2, X1-X2)*bj_RADTODEG


X1,Y1 - начальная точка

X2.Y2 - нужная точка, куда хочешь повернуть

поправил

Отредактировано Sidhe, 09.05.2012 в 01:50.
Старый 08.05.2012, 23:24
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
Sidhe, можешь объяснить что это такое?а то смахивает на регион.
Старый 08.05.2012, 23:26
Hanabishi
COOL STATUS
offline
Опыт: отключен
Sidhe, у тебя неправильно, Atan2 принимает 2 аргумента - y и x.
Например:
local real px = //x точки
local real py = //y точки
local player p = //игрок
local integer id = //id юнита
local real nx = //юнит - x
local real ny = //юнит - y

call CreateUnit(p, id, nx, ny, Atan2(py-ny, px-nx)*bj_RADTODEG)
Старый 08.05.2012, 23:31
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
local real nx = юнит - x
local real ny = юнит - y
А вот это что?по Х?по Y?А вот это-Atan2(py-ny, px-nx)*bj_RADTODEG???Типа вычисляет угол между точками.Но какими?
Старый 08.05.2012, 23:42
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Sladkoegka,
x1 y1 - координаты юнита или где он будет создан
x2,y2 - точка куда ты повернёш его или куда он будет двигаться
Atan2(y2-y1,x2-x1) вернёт угол в радианах потом переводиш в градусы и всё
Старый 08.05.2012, 23:46
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
Sladkoegka:
local real nx = юнит - x
local real ny = юнит - y
А вот это что?по Х?по Y?
это координаты куда юнит должен повернуться
А вот это-Atan2(py-ny, px-nx)*bj_RADTODEG???Типа вычисляет угол между точками.Но какими?
(py-ny, px-nx) очевидно же
Старый 08.05.2012, 23:46
Hanabishi
COOL STATUS
offline
Опыт: отключен
Вот, если так будет понятней, вот функция вычисляющая угол между координатами (в градусах, для создания юнита):
function AngleBetweenCoords takes real x1, real y1, real x2, real y2 returns real
    return Atan2(y2-y1, x2-y1)*bj_RADTODEG
endfunction
Школьный курс геометрии.
Старый 08.05.2012, 23:54
Doc

offline
Опыт: 63,163
Активность:
Господи, это же элементарная тригонометрия, что сложного?
Почитайте курс 10 класса.
Старый 09.05.2012, 00:05
Sladkoegka
Забыл что хотел...
offline
Опыт: 7,477
Активность:
function AngleBetweenCoords takes real x1, real y1, real x2, real y2 returns real
    return Atan2(y2-y1, x2-y1)*bj_RADTODEG
endfunction
Вот часть кода:
set udg_Weave[0] = CreateUnitAtLoc( GetOwningPlayer(udg_Weave_caster), 'h000', udg_Weave_point[1],  Atan2(GetLocationY(udg_Weave_point[2]) - GetLocationY(udg_Weave_point[1]), GetLocationX(udg_Weave_point[2]) - GetLocationX(udg_Weave_point[1]) ) * bj_RADTODEG )
Всем спасибо-все работает().Просто я никогда таких вычислений не видел,вот и потерялся.
Почитайте курс 10 класса.Школьный курс геометрии.
Я в 8-ом.
Старый 09.05.2012, 09:47
Закрытая тема

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

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

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

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



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