Как повернуть камеру в движке Ursina?Python

Программы на Python
Ответить
Anonymous
 Как повернуть камеру в движке Ursina?

Сообщение Anonymous »

Я делаю простой космический симулятор, и все, что мне нужно, — это летать. Мне удалось заставить камеру двигаться, но я не могу заставить ее правильно вращаться вокруг своих осей.
Я не мог заставить FirstPersonController летать, поэтому решил сделать свою собственную камеру.
Это движение в xyz:

Код: Выделить всё

direction = Vec3(camera.forward * (held_keys['w'] - held_keys['s']) + camera.right * (held_keys['d'] - held_keys['a']) + camera.up * (held_keys['e'] - held_keys['q'])).normalized()

Код: Выделить всё

camera.position += direction * speed * time.dt
Вращение по 1 оси работает хорошо:

Код: Выделить всё

camera.rotation_y += mouse.velocity[0] * sensitivity
Когда я добавляю Rotate_x, получается беспорядок. Он вращается вдоль мировой оси X независимо от направления. То же самое и с осью Z.
Я пытался добавить объект camera_pivot и вращать его по одной оси, а саму камеру - по другой оси, но это все равно не работает должным образом:

Код: Выделить всё

camera_pivot = Entity()

Код: Выделить всё

camera.parent = camera_pivot

Код: Выделить всё

camera.position = (0, 0, 0)

Код: Выделить всё

camera.rotation = (0, 0, 0)
раздел обновления:

Код: Выделить всё

camera_pivot.rotation_x -= mouse.velocity[1] * sensitivity

Код: Выделить всё

camera.rotation_y += mouse.velocity[0] * sensitivity


Подробнее здесь: https://stackoverflow.com/questions/793 ... ina-engine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»