2016-02-23 64 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