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

 Смежные вопросы

  • Нет связанных вопросов^_^