Войти или зарегистрироваться

[Решено] Положение партиклов

Статус
Закрыто для дальнейших ответов.

misterney

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
misterney
Столкнулся с проблемой.
Имеется генерация партиклов на фиксированном расстояние от игрока, но подвох в том, что расстояние фиксировано по всем параметрам.
А хотелось бы чтобы при повороте головы игрока положение этих партиклов менялось, то есть как бы спавнились партиклы за головой. Но поворот чтобы был по горизонтали (Без pitch)
Понимаю что нужно зайдействовать параметр Yaw, но вот как вычислить, не понимаю.
Помогите пожалуйста.
 
Ну просто повернуть каждую точку вокруг игрока на угол yaw, что сложного?
 
Синус, косинус ... знакомые слова? :)
 
Синус, косинус ... знакомые слова? :)
Я через них и пытался делать T.T
xnew = x * Math.cos(yaw) - z * Math.sin(yaw);
znew = z * Math.sin(yaw) + x * Math.cos(yaw);
В итоге белиберда...
Подскажи как правильнее, а то уже крыша едет.
 
upload_2016-2-19_22-2-46.png
Ну смотри, координаты частиц (например, точки A и B) указываются векторами OA и OB (O — начало системы координат с центром в игроке). Надо посчитать для каждой точки из X и Z её R (расстояние) и Y (угол), то есть перевести в полярную систему координат. Затем прибавляешь к углу yaw игрока, и переводишь обратно в координаты X/Z. Получаешь две новые точки, A' и B', которые повернуты вместе с игроком.
Прибавляешь к полученным числам координаты игрока в мире — получаешь координаты частички эффекта в мире.
x = r * cos(yaw); z = r * sin(yaw)
Вроде бы так ... я уже всё :)
 
Ну смотри, координаты частиц (например, точки A и B) указываются векторами OA и OB (O — начало системы координат с центром в игроке). Надо посчитать для каждой точки из X и Z её R (расстояние) и Y (угол), то есть перевести в полярную систему координат. Затем прибавляешь к углу yaw игрока, и переводишь обратно в координаты X/Z. Получаешь две новые точки, A' и B', которые повернуты вместе с игроком.
Прибавляешь к полученным числам координаты игрока в мире — получаешь координаты частички эффекта в мире.
x = r * cos(yaw); z = r * sin(yaw)
Вроде бы так ... я уже всё :)
Ты прекрасен! Спасибо большое! Пойду кодить.
upd. Всего тебе там наилучшего и здоровья и денег, короче всего, выручил ты меня!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх