2

three.js では、xyz に宇宙船があり、xyz にある惑星のメッシュ オブジェクトに向かって飛行するのが好きです。

私は一生これを理解することはできません。

惑星に向かって一定の速度で直線的に移動する必要があります。

4

2 に答える 2

0

それに焦点を当てたhttps://github.com/sole/tween.jsを使用できます。

主に次のコードを使用した非常に基本的な例http://jsfiddle.net/qASPe (正方形は 5 秒後に球に向かって飛行します):

new TWEEN.Tween(ship.position)
    .to(planet.position, 700) // destination, duration 
    .start();

後で、THREE.Curve またはその他のパス メカニズムを、 http://jsfiddle.net/aevdJ/12のような「フライング」パスとして使用することができます。

// create a path
var path = new THREE.SplineCurve3([
    ship.position,
    // some other points maybe? representing your landing/takeoff trajectory
    planet.position
]);

new TWEEN.Tween({ distance:0 })
    .to({ distance:1 }, 3000) // destination, duration 
    .onUpdate(function(){
        var pathPosition = path.getPointAt(this.distance);
        ship.position.set(pathPosition.x, pathPosition.y, pathPosition.z);
    })
    .start();

いずれの場合も、更新関数にこの行を追加することを忘れないでください

TWEEN.update();
于 2013-09-27T01:26:00.200 に答える