0
我有2個網格。我想從第一個網格向第二個網格發射一個彈丸。在一條線上移動一個網格三個JS
爲此我畫了一條線。但是我無法在這條「線路」上翻譯炮彈。我嘗試了translateOnAxis函數,但它不起作用。
你知道一個方法來移動一個線後的對象嗎? 你有其他方法嗎?
謝謝你,
托馬斯
我有2個網格。我想從第一個網格向第二個網格發射一個彈丸。在一條線上移動一個網格三個JS
爲此我畫了一條線。但是我無法在這條「線路」上翻譯炮彈。我嘗試了translateOnAxis函數,但它不起作用。
你知道一個方法來移動一個線後的對象嗎? 你有其他方法嗎?
謝謝你,
托馬斯
因此,可以說你已經object1(的THREE.Object3D()
型)和你做一樣的東西:
object1.position.set(1, 2, 3);
var position2 = new THREE.Vector3(11, 12, 13);
,你想object1移動到位置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
謝謝你,是我不好,我看到了這個庫時,我研究的是在網絡上,但我不認爲這個庫爲發。非常感謝你。 – merinid
我編輯了我的答案 – gaitat
是的,我已經添加了更新;) – merinid