2016-02-23 1 views
0

Je suis en mesure de changer le sens de rotation de l'objet par la mise en place du contrôle clé à l'aide:Changer objet direction d'animation rotation basé sur le clavier threejs

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

mais la rotation ici est discret, ce qui signifie que si je cesse d'appuyer sur la clavier, ma scène arrêtera de tourner aussi bien. Je sais que je peux configurer requestAnimationFrame dans la fonction de rendu et spécifier une direction de rotation pour faire une animation. Comment puis-je changer la direction de rotation en fonction de la saisie au clavier et continuer à faire tourner l'animation?

+0

Que diriez-vous d'un violon? –

+0

vous voilà: http://jsfiddle.net/2xv6dnua/ – user3669481

Répondre

1

0) Il est nécessaire de stocker la vitesse de rotation de l'objet:

mesh.rotSpeed = { x: 0, y: 0}; 

1) En cliquant sur les flèches nécessaires pour modifier la vitesse de rotation autour d'un axe respectif:

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) Dans le cycle d'animation pour faire pivoter l'objet autour des axes avec la vitesse désirée:

mesh.rotation.x += mesh.rotSpeed.x; 
mesh.rotation.y += mesh.rotSpeed.y; 

JSFiddle