2016-02-23 49 views
0

我能够通过设置使用按键控制来改变对象的旋转方向:改变对象的旋转动画方向threejs

case 37: 
     scene.rotation.x -= 0.01; 
     break 
case 38: 
     scene.rotation.z -= 0.01 
     break 

但这里的旋转是离散的,这意味着如果我停止按键盘,我的场景也会停止旋转。我知道我可以在渲染函数中设置requestAnimationFrame并指定旋转方向来制作动画。如何根据键盘输入更改旋转方向并保持动画继续?

+0

小提琴怎么样? –

+0

在这里你去:http://jsfiddle.net/2xv6dnua/ – user3669481

回答

1

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; 

JSFiddle