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

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

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

offline
Опыт: 12,714
Активность:
Корявый полет снаряда.
Блин я уже не могу!
Все не так! Не могу подобрать формулу адекватного прямого полета с зависимостью от рельефа!!! Все как-то через задницу! Летит криво и уродливо!
Прошу посмотреть с точки зрения алгебры. Все ли правильно?
Комментил, как мог.

Отредактировано inadequate_, 29.06.2012 в 17:33.
Старый 29.06.2012, 16:28
Hanabishi
COOL STATUS
offline
Опыт: отключен
Не качая могу сказать, поставь юниту тип движения "нет".
Старый 29.06.2012, 17:02
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
reAlien:
xgm.ru/files/100/59422/comments/111730/ScRocketLauncher.w3x
Старый 29.06.2012, 17:03
vladfaust

offline
Опыт: 12,714
Активность:
// cx, cy, cz - координаты кастера.
// tx, ty, tz - координаты конечной точки.
// x, y - следующие координаты shot'а.
// n_dist - сколько снаряд уже пролетел.

tan = Atan2(tz-cz, DistanceBetweenCoords(cx, cy, tx, ty))
ang = AngleBetweenCoords (cx, tx, cy, ty)
x = cx+speed*Cos(ang*bj_DEGTORAD)
y = cy+speed*Sin(ang*bj_DEGTORAD)
n_dist+=speed
if tan > 0
{
	SetUnitFlyHeight(shot, cz-GetPointZ(x, y)+n_dist*tan, 0.)
else
	SetUnitFlyHeight(shot, cz-GetPointZ(x, y)-n_dist*tan, 0.)
}

// Переменные, которые получают правильные (нужные) значения:
// cx, cy, cz, tx, ty, tz, ang, n_dist.
// tan принимает значения, близкие к желаемым. Вроде правильные.
Старый 29.06.2012, 17:05
vladfaust

offline
Опыт: 12,714
Активность:
StarChild, oh shi~ я конечно же все дебажил кучу раз. Тебе сказано, что
Переменные, которые получают правильные (нужные) значения:
cx, cy, cz, tx, ty, tz, ang, n_dist.
Если уж тебе нужно, считаю так:
	private location x_loc = Location(0., 0.)
        real GetPointZ (real x, real y)
        {
            MoveLocation(x_loc, x, y)
            return GetLocationZ(x_loc)
        }
Старый 29.06.2012, 17:20
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
Старый 29.06.2012, 17:28
vladfaust

offline
Опыт: 12,714
Активность:
Hanabishi, дак не взлетит же.
inadequate_ добавил:
Rewenger, чуть лучше стало.
inadequate_ добавил:
DragonSpirit, спасибо, ничего полезного не нашел, все это было пройдено в 10-м классе.
inadequate_ добавил:
Ухуу!
Спасибо, Rewenger! Закрывайте!
Старый 29.06.2012, 18:09
Doc

offline
Опыт: 63,163
Активность:
tan = Atan2(tz-cz, DistanceBetweenCoords(cx, cy, tx, ty))
это чо вообще такое О_О_О_О
Старый 29.06.2012, 18:24
Закрытая тема

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

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

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

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



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