javascript - 在直线上移动网格 三个 JS

标签 javascript 3d three.js

我有 2 个网格。我想从第一个网格向第二个网格发射射弹。

为此,我在它们之间划了一条线。但我无法在这条“线”上平移射弹。我尝试使用translateOnAxis 函数,但它不起作用。

你知道沿着线移动物体的方法吗? 你还有别的方法吗?

谢谢,

托马斯

最佳答案

假设您有 object1(类型为 THREE.Object3D())并且您做了类似的操作:

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

并且您希望对象 1 移动到位置 2。

您可以包含 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

关于javascript - 在直线上移动网格 三个 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656301/

相关文章:

javascript - Phaser.io - 是否可以使用补间将tileSprite.tilePosition移动到特定目标?

javascript - 除非被迫,否则 Vue 不会更新计算

javascript - 我可以在 Google 脚本编辑器(Google Apps 脚本)中调试 JavaScript 代码吗

opengl - 我想使用 openGL 制作一个简单的 3D 游戏,我应该从哪里开始?

c++ - 3D图形网格法 vector 旋转加倍

javascript - 更改网格颜色按钮按三个 js

javascript - 用螺旋线包裹圆环

javascript - 回调 : animate complete: called after . Promise().done()

r - 在 r 中具有 Plot_ly 的 3D 曲面,具有 x、y、z 坐标

javascript - 如何将 Threejs 中的几何图形定位到底部并保持其纵横比