相对于Three.js中的对象旋转向前移动

问题描述:

我刚刚开始查看Three.js,并且有关于对象移动的问题。在XNA/ShparDX中,您可以执行类似下面的代码的操作,其中对象可以相对于其方向向前移动。所以如果物体向下看,这会使它下移。如果它向右看,它会向右移动。这个视频的例子可以看到here,并且是页面上的最后一个视频。相对于Three.js中的对象旋转向前移动

float speed = 0.15f; 
Vector3 velocity = objectMatrix.Forward * speed; 
objectMatrix *= Matrix.CreateTranslation(velocity); 

我曾尝试以下,基于this answer。当我按下键来触发它时,它什么都没做。

var STEP = 10; 
object.matrixWorld.identity(); 
object.matrixWorld.multiplySelf(three.Matrix4.translationMatrix(object.position.x, object.position.y, object.position.z + STEP)); 
object.updateMatrixWorld(); 

我一直没有使用Three.js中提供的成员和函数来复制它。有人可以告诉我是否有可能吗?谢谢。

mesh.translateX(delta); 
mesh.translateY(delta); 
mesh.translateZ(delta); 

要继续前进,请使用translateZ(delta)

如果你只是在学习,最好不要惹object.matrix,除非你真的知道你在做什么。改为设置positionrotationscale

+1

我绝对不是新的矩阵,但你的答案似乎工作雄辩。如果任何人有更好的补充,但是你看起来是正确的答案,我会留下一些问题。 – Dragonseer 2013-02-12 17:18:11