我制作了一个游戏,其中一个物体移动到其他物体。
new TWEEN.Tween( object.position ).to({
x: Math.position = pointX,
z: Math.position.z = pointZ
}).easing( TWEEN.Easing.Linear.None).start();
问题在于物体以不同的速度移动到每个点,因为这些点具有不同的位置。
如何才能使对象的速度始终保持不变?
答案 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()
函数。