@s2sk1337

Как исправить ошибку в формуле?

Привет.

Не могу исправить ошибку с камерой в игре. Почему-то чем ниже смотрит камера - тем она быстрее двигается. То есть

PZZNtHw.png

Зеленое - куда смотрю
Голубое - куда двигаюсь
Красное - камера

И вот чем ниже смотрю - тем быстрее начинает ускорятся камера, а когда вообще в пол смотрю - за одно движение очень далеко отдаляется.

Собственно код -
if (ЕСЛИ КНОПКА W ЗАЖАТА) // Вперед
	{
		MainRenderGraphics.pos_camera[0] -= sin(MainRenderGraphics.pos_camera_at[0] / 180 * PI) * 0.5;
		MainRenderGraphics.pos_camera[1] += tan(MainRenderGraphics.pos_camera_at[1] / 180 * PI) * 0.5;
		MainRenderGraphics.pos_camera[2] -= cos(MainRenderGraphics.pos_camera_at[0] / 180 * PI) * 0.5;
	}

	if (ЕСЛИ КНОПКА S НАЖАТА) // (назад)
	{
		MainRenderGraphics.pos_camera[0] += sin(MainRenderGraphics.pos_camera_at[0] / 180 * PI) * 0.5;
		MainRenderGraphics.pos_camera[1] -= tan(MainRenderGraphics.pos_camera_at[1] / 180 * PI) * 0.5;
		MainRenderGraphics.pos_camera[2] += cos(MainRenderGraphics.pos_camera_at[0] / 180 * PI) * 0.5;
	}


pos_camera - координаты позиции камеры
pos_camera_at - куда она смотрит
  • Вопрос задан
  • 257 просмотров
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Зачем брать тригонометрические функции от компонентов направления взгляда? Если нужно двигаться в направлении взгляда, следует прибавлять к позиции камеры произведение скорости на нормированный вектор направления взгляда на продолжительность одного кадра.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект