【发布时间】:2018-07-29 11:57:39
【问题描述】:
在完成了相机运动的工作一段时间后,是时候将运动添加到我的 three.js 项目中了。首先,我刚刚尝试使用camera.translateZ(movementSpeed),但这会使相机飞起来,我想将运动限制在 x 和 z 轴上。基本上,我计划使用相机 y 旋转的余弦和正弦来简单地找到 z 和 x 速度。这对于旋转的前半部分非常有效,但在后半部分停止。有没有更好的方法来做到这一点,或者我可以以某种方式解决它?
您可以在http://jsfiddle.net/zLa78yqw/2/ 找到它的小提琴,请注意我添加了一个球,显示前进将在哪里着陆相机。
我计算 delta z 和 x 的代码是:
var zvel=Math.cos(camera.rotation.y);
var xvel=Math.sin(camera.rotation.y);
testBall.position.z=camera.position.z-zvel*2;
testBall.position.x=camera.position.x-xvel*2;
请帮忙,我已经被困了一段时间了。
TLDR:我需要帮助让 3js 中的对象向前移动,而不是向上移动。
【问题讨论】:
标签: javascript matrix three.js quaternions