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

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

Закрытая тема
 
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Полярки
Народные знатоки джасса, сделайте доброе дело!
В нативах вара3 есть всем известная функция
function PolarProjectionBJ takes location source, real dist, real angle returns location
local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD)
return Location(x, y)
endfunction
Вопрос: как её переписать таким образом, чтобы она не создавала утечек в карте?
Старый 06.07.2009, 20:50
Garret
Недоброе творится
offline
Опыт: 3,893
Активность:
B100D E1F
1. Делай покоординатно, почти всё можно сделать таким способом (формула из приведённой тобой функции)
2. Сделать функцию самому и перемещать MoveLocation
3. Удалять точку после использования
Старый 06.07.2009, 20:55
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
B100D E1F. Дарю полезную ссылку.
http://xgm.guru/forum/showthread.php?t=20224
Старый 06.07.2009, 21:00
Чебурашка

offline
Опыт: 5,460
Активность:
обойтись без функции и писать сразу
local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD)
Старый 06.07.2009, 21:00
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Цитата:
Сообщение от Garret
3. Удалять точку после использования

А просветите как сиё сделать?
Старый 06.07.2009, 21:19
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
А просветите как сиё сделать?
из всех вариантов обратил внимание на самый нубский, видать у всех это что-то генное
Старый 06.07.2009, 21:28
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Просто специфика такова... Переписываю объёмистую вещь с гуи на джасс, и проще написать ф-цию без утечек и позаменять, чем перелопачивать весь код.
J: прошу без намёков на оскорбление
Старый 06.07.2009, 21:33
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Цитата:
J: прошу без намёков на оскорбление

ага его чо то проперло
ну а лучше конечно обойтись координатами
Старый 07.07.2009, 06:29
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Народ, таки скажите: как удалить точку после использования?
Старый 07.07.2009, 08:54
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
call RemoveLocation( loc )
Старый 07.07.2009, 09:24
Daemonik

offline
Опыт: 5,084
Активность:
Ну я конечно не знаток.
Но раз у тебя координаты точки находятся в локалке(в типе real), то удалять их уже не надо.
Вот если бы ты использовал вместо координат точки локацию, то надо было бы писать
call RemoveLocation(loc)
Поправьте меня если я не то сказал.
Старый 07.07.2009, 09:25
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Daemonik. Сказал-то все верно, но суть в том, что в полярных координатах локации вообще не уместны. Выше давал ссылку, там все подробно написано с примерами.
Старый 07.07.2009, 10:10
Закрытая тема

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

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

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

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



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