2015-05-30 2 views
0

Я создал MotionPath для своего Пространства, добавив путевые точки. Это работает нормально, когда я делаю что-то вроде этогоКак сделать непрерывную MotionPath?

path.addWayPoint(new Vector3f(0, 0, 0)); 
path.addWayPoint(new Vector3f(2, 0, 0)); 
path.addWayPoint(new Vector3f(4, 0, 0)); 
path.addWayPoint(new Vector3f(6, 0, 0)); 

Я хотел, чтобы переместить его динамически, поставив точки маршрута в методе как этот

public void moveSpatial(float x) { 
    Vector3f currentTranslation = spatial.getLocalTranslation(); 
    path.addWayPoint(currentTranslation.x, 0, 0); 
    path.addWayPoint(currentTranslation.x + x, 0, 0); 
} 

и в методе simpleUpdate я добавил

spatial.setLocalTranslation(new Vector3f(newX, 0, 0); 

, где

float newX = currentTranslation.x + x; 

теперь анимация (плавный ход) работает, НО каждый раз, когда я вызываю метод moveSpatial, пространственный сначала переходит в исходную точку Vector3f (0, 0, 0), а затем он перемещается по точкам. (0, 0, 0) - это позиция, заданная для пространственного при запуске приложения. Я хотел бы сделать движение с последней позиции, где пространственное завершение его движения. Как это сделать?

+0

Я думаю, это связано с вашим другим вопросом на http://stackoverflow.com/questions/30479970/smooth-translation-combined-with -компании? Я думаю, что это странный подход к вашей проблеме. Вместо этого я попытаюсь внести что-то в исходное сообщение. – 1000ml

ответ

0

Я нашел решение, и это действительно просто :) Чтобы предотвратить это странное поведение, необходимо добавить в changepoint listener изменение localTranslation. Затем, когда новая путевая точка будет добавлена ​​из последней текущей позиции, она начнется там, где она закончилась.