>>5139216
>Правило Буравчика.
А, т.е. здесь есть люди, которые это еще не забыли?
Тогда я вас сейчас немного поэксплуатирую.
Значит так. Есть две функции:
-
vector.rotate(v, r)
:
* Applies the rotation r
to v
and returns the result.
* vector.rotate({x = 0, y = 0, z = 1}, r)
and
`vector.rotate({x = 0, y = 1, z = 0}, r)` return vectors pointing
forward and up relative to an entity's rotation `r`.
Я понял это описание так, что если vector.rotate
поюзать на направление, в которое сущность смотрит сейчас и направление, в которое мы хотим, чтобы она смотрела, и результат скормить set_rotation
, то сущность повернется в нужном направлении. Однако в результате оно у меня поворачивается куда угодно, но только не туда, куда нужно.
Есть идеи, как это может работать? А то пытаюсь понять, чем все эти их крен/тангаж/рыскание, или как их там, отличаются друг от друга, и чувствую себя полной Сырной, ни на что, кроме лягушек замораживать, непригодной.
В итоге для прямых углов тупо методом тыка составил таблицу того, что нужно set_rotation
скормить:
vector.new(0, pi, pi), --0 y+, top
vector.new(0, 0, 0), --1 y-, bottom (default)
vector.new(pi/2, 0, -pi/2), --2 x+, right
vector.new(pi/2, 0, pi/2), --3 x-, left
vector.new(0, pi/2, -pi/2), --4 z+, back
vector.new(0, pi/2, pi/2), --5 z-, front
Но почему эти значения именно такие?