2015-04-15 2 views
0

У меня есть 2 сетки. Я хочу выстрелить снаряд из первой сетки во вторую.Переместить сетку на линии Три JS

Для этого я рисую линию между ними. Но я не могу перевести снаряд на эту «линию». Я попытался с функцией translateOnAxis, но это не сработало.

Знаете ли вы способ перемещения объекта по строке? У вас есть другие методы?

Спасибо,

Томасу

ответ

1

Так позволяет сказать, что вы 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(); 
} 

EDIT:

Вы должны были бы добавить цикл анимации:

TWEEN.update(); 

и в Init():

TWEEN.removeAll(); // clear out tween buffer 
+0

Спасибо, мой плохой, я видел эту библиотеку, когда я исследовал, что в Интернете, но я не думаю, что эта библиотека была сделана для этого. Большое спасибо. – merinid

+0

Я отредактировал мой ответ – gaitat

+0

Да, я добавил обновление;) – merinid

Смежные вопросы