【问题标题】:three.js player movement bug三.js播放器移动bug
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2014-11-21
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多