@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
Зачем брать тригонометрические функции от компонентов направления взгляда? Если нужно двигаться в направлении взгляда, следует прибавлять к позиции камеры произведение скорости на нормированный вектор направления взгляда на продолжительность одного кадра.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы