Мне нужен способ (в java), чтобы рассчитать, в каком направлении моя камера будет двигаться вперед по осям x и z в зависимости от направления, с которым обращена камера (рыскания), и для y (вертикальная ось). Я делаю свой собственный игровой движок и свою собственную камеру.Как сделать камеру движением в направлении, в котором она находится в java?
При всех значениях по умолчанию, равных нулю, перемещение камеры правильно направляет все движения вдоль положительной оси z. Однако, когда я панорамирую камеру влево или вправо (тем самым изменяя рыскание), камера все еще движется только вдоль оси z ... Итак, как мне рассчитать изменение направления к осям x, y и z?
Диапазон цен на рыскание составляет 0 (юг), 45 (юго-запад), 90 (запад), 135 (северо-запад), 180 (север), 225 (северо-восток), 270 (восток), 315 (юго-восток) , и обратно до 360 (юг, то же, что и 0).
Что я ищу с направлениями компаса (где «+» или «-» указывает на изменение значения вдоль этой оси):
South = x, y, z+
SouthWest = x+, y, z+
West = x+, y, z
NorthWest = x+, y, z-
North = x, y, z-
NorthEast = x-, y, z-
East = x-, y, z
SouthEast = x-, y, z+
Диапазон значений на поле 0.0 (средний), 100.0 (вверх по всему пути) и -100.0 (до упора).
Если мне нужно опубликовать какой-то код, я могу, но это может усложниться. Надеюсь, я сделаю какой-то смысл, чтобы кто-то мог мне помочь!
Отлично, я изучу это, как только смогу! Только один быстрый вопрос, если бы я действительно хотел, чтобы шаг (движение вверх и вниз) учитывался в значениях x и z для «летающей» камеры, как бы я это сделал? –
Я думаю, что шаг фактически учтен в x и z в моем решении, так как вы можете видеть, что xzLength зависит от p и dz, dx зависит от него, неужели я не понимаю ваш вопрос? – Lake
Наоборот, если вы хотите * не * учитывать шаг в x и z, вы должны позволить просто xzLength = k вместо этого – Lake