在三行JS上移动一个网格

时间:2015-04-15 16:58:17

标签: javascript 3d three.js

我有2个网格。我想要从第一个网格射到第二个网格的射弹。

为此,我在他们之间划了一条线。但是我无法在这条"线"上翻译一个抛射物。我尝试使用translateOnAxis函数,但它没有用。

您是否知道在线后移动对象的方法? 你有其他方法吗?

谢谢,

托马斯

1 个答案:

答案 0 :(得分:1)

因此,假设您有object1(类型为THREE.Object3D())并且您已完成以下操作:

object1.position.set( 1, 2, 3 );
var position2 = new THREE.Vector3( 11, 12, 13 );

并且您希望object1移动到position2。

您可以包含tween.js库并在两者之间进行补间:

setupObjectPositionTween( object1, object1.position.clone(), position2,
    2000, 100, TWEEN.Easing.Linear.None );      // duration, delay, easing

使用:

function setupObjectPositionTween( object, source, target, duration, delay, easing )
{
    new TWEEN.Tween( source )
        .to( target, duration )
        .delay( l_delay )
        .easing( l_easing )
        .onUpdate( function() { object.position.copy( source ); } )
        .start();
}

修改

您需要添加动画循环:

TWEEN.update ();

并在init()中:

TWEEN.removeAll();  // clear out tween buffer