Three.JS TWEEN将对象移动到其他对象速度

时间:2017-02-09 19:59:47

标签: javascript three.js move tween

我制作了一个游戏,其中一个物体移动到其他物体。

new TWEEN.Tween( object.position ).to({
   x: Math.position = pointX,
   z: Math.position.z = pointZ
}).easing( TWEEN.Easing.Linear.None).start();

问题在于物体以不同的速度移动到每个点,因为这些点具有不同的位置。

如何才能使对象的速度始终保持不变?

1 个答案:

答案 0 :(得分:4)

一般来说,它看起来像这样:

var speed = 5; // units a second, the speed we want
var currentPoint = new THREE.Vector3();  // we will re-use it


// this part is in a function of event listener of, for example, a button
currentPoint.copy(cube.position); // cube is the object to move
var distance = currentPoint.distanceTo(destinationPoint.position)
var duration = (distance / speed) * 1000; // in milliseconds
new TWEEN.Tween(cube.position)
  .to(destinationPoint.position, duration) // destinationPoint is the object of destination
  .start();

jsfiddle示例。看看tweening()函数。