three.js球员运动错误

时间:2015-05-02 08:08:54

标签: javascript matrix three.js quaternions

工作一段时间后让相机运动全部稳定下来,是时候将动作添加到我的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中的对象向前移动,而不是向上移动。

1 个答案:

答案 0 :(得分:0)

我认为你想要的不是camera.rotation.y,而是相机世界方向的方位角。

vector = camera.getWorldDirection();
azimuth= Math.atan2(vector.x,vector.z);