7

我正在尝试根据它的旋转在three.js中移动一个立方体,但不确定如何去做。

到目前为止,我可以使用 A & D 键旋转立方体的 z 轴旋转。并且使用 W 键,我希望它相对于其旋转向前移动。

从 2D 开始,我会这样做:

float angle = GradToRad(obj.rotation);
obj.x = obj.x + cos(angle) * velocity;
obj.y = obj.y + sin(angle) * velocity;

这是当前实现的图像。 3D立方体三.js

如何在 three.js 中应用类似的东西?

4

3 回答 3

12

可以认为对象面向其正 Z 轴。所以要向前移动一个对象,相对于它自己的坐标系,你可以使用

Object3D.translateZ( distance );

三.js r.57

于 2013-04-10T14:17:49.640 回答
0

在单个(同质投影)4×4 矩阵中表达旋转和平移可能是最简单的。Object3D.matrixthree.js 中的成员已经这样做了,尽管您可能必须设置matrixAutoUpdatefalse直接使用它。然后您可以使用 movetranslate方法在其自己的参考框架中移动对象。

于 2013-04-10T14:16:43.933 回答
0

您的 2D 方法正是我在 three.js 中所做的。对于 Y 位置,我使用的是地形碰撞技术(仍然需要工作);

于 2013-04-18T09:59:06.727 回答