基于键盘threejs改变对象旋转动画方向
Change object rotating animation direction based on keyboard threejs
我可以通过设置键控制来改变对象的旋转方向:
case 37:
scene.rotation.x -= 0.01;
break
case 38:
scene.rotation.z -= 0.01
break
但是这里的旋转是离散的,这意味着如果我停止按下键盘,我的场景也会停止旋转。我知道我可以在渲染函数中设置 requestAnimationFrame 并指定旋转方向来制作动画。如何根据键盘输入更改旋转方向并保持动画继续播放?
0)需要存储物体的旋转速度:
mesh.rotSpeed = { x: 0, y: 0};
1) 通过单击必要的箭头来更改绕相应轴的旋转速度:
switch (e.keyCode){
case 37:
mesh.rotSpeed.x += 0.01;
break;
case 39:
mesh.rotSpeed.x -= 0.01;
break;
case 38:
mesh.rotSpeed.y +=0.01;
break;
case 40:
mesh.rotSpeed.y -=0.01;
break;
}
2) 在动画循环中以所需速度绕轴旋转对象:
mesh.rotation.x += mesh.rotSpeed.x;
mesh.rotation.y += mesh.rotSpeed.y;
我可以通过设置键控制来改变对象的旋转方向:
case 37:
scene.rotation.x -= 0.01;
break
case 38:
scene.rotation.z -= 0.01
break
但是这里的旋转是离散的,这意味着如果我停止按下键盘,我的场景也会停止旋转。我知道我可以在渲染函数中设置 requestAnimationFrame 并指定旋转方向来制作动画。如何根据键盘输入更改旋转方向并保持动画继续播放?
0)需要存储物体的旋转速度:
mesh.rotSpeed = { x: 0, y: 0};
1) 通过单击必要的箭头来更改绕相应轴的旋转速度:
switch (e.keyCode){
case 37:
mesh.rotSpeed.x += 0.01;
break;
case 39:
mesh.rotSpeed.x -= 0.01;
break;
case 38:
mesh.rotSpeed.y +=0.01;
break;
case 40:
mesh.rotSpeed.y -=0.01;
break;
}
2) 在动画循环中以所需速度绕轴旋转对象:
mesh.rotation.x += mesh.rotSpeed.x;
mesh.rotation.y += mesh.rotSpeed.y;