2015-05-29 40 views
0

我是新手,已经创建了场景,渲染器,相机和两个对象, 我想要的是将一个对象移动到另一个对象,我如何在THREE.JS中实现这一点? 继承人所有我好心尝试过的东西帮助我,这 感谢如何将对象移动到THREE.JS中的其他稳定对象?

<script src="js/three.min.js"></script> 
 
<script src="js/tween.min.js"></script> 
 
<script src="js/OrbitControls.js"></script> 
 
<script> 
 
    var scene = new THREE.Scene(), 
 
     camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000), 
 
     renderer = new THREE.WebGLRenderer(), 
 
     controls = new THREE.OrbitControls(camera), 
 
     tween = new TWEEN.Tween({cube.position}) 
 
\t \t .to({cube1.position},3000) 
 
\t \t .delay(2000) 
 
\t \t .start(); \t 
 
\t \t \t 
 
    renderer.setSize(window.innerWidth, window.innerHeight); 
 
    document.body.appendChild(renderer.domElement); 
 
     
 
    var cube = new THREE.Mesh(
 
     new THREE.CubeGeometry(2,2,2), 
 
     new THREE.MeshBasicMaterial({wireframe: true, color: 0x000000} 
 
    )); 
 
    cube.position.x=3; 
 
    cube.position.y=1; 
 
    cube.position.z=2; 
 
    //cube.geometry.dynamic = True; 
 
    //cube.translateZ(10); 
 
    scene.add(cube); 
 

 
    camera.position.z = 10; 
 

 
    var dullMaterial = new THREE.MeshBasicMaterial({ color: 0xCCFF00 \t , ambient: 0x333333 }); 
 
     
 
    var loader = new THREE.JSONLoader(); 
 
    loader.load('models/monkey.js', function (geometry, materials) { 
 
     cube1 = new THREE.Mesh(geometry, dullMaterial); 
 
     scene.add(cube1); 
 
    }); 
 

 
    var render = function() { 
 
     requestAnimationFrame(render); 
 
     controls.update(); 
 
     TWEEN.update(); 
 

 
     cube1.rotation.x += 0.01; 
 
     cube1.rotation.y += 0.01; 
 
     //cube.translate(0.1); 
 
     renderer.render(scene, camera); 
 
    }; 
 
    render(); 
 
</script>

回答

0

您可以使用另一个库tween.js在(你可以在three.js所\例子\ JS \找到它库),并做

new TWEEN.Tween(object1.position, // old position 
    .to(object2.position, 3000) // new position, duration 
    .delay(2000) 
    .start(); 
+0

请让我知道在哪里添加此?我没有得到你请详细解释它会有很大的帮助谢谢@gaitat –

+0

@mrdoob有什么建议吗? –

+0

实际上,您可以在创建对象后将它放在任何位置。 'delay'参数将关注动画的开始,'duration'将告诉动画持续多久。 – gaitat

相关问题