2013-03-10 7 views
0

Я работаю с CreateJS и задаюсь вопросом, есть ли у кого-нибудь примеры управления подростками с использованием объекта Ticker. Я пытаюсь получить спрайт, чтобы следовать пути, определяемому путевыми точками, но я не хочу контролировать каждую анимацию (между путевыми точками) по времени. Я хочу иметь плавное движение между каждой путевой точкой, контролируемой объектом Ticker. Я пробовал этот код, который, похоже, не работает вообще.Пример того, как управлять подростками с использованием Тикера в CreateJS

var index = 0; 

function move(){ 
    index++; 
    if (index < path.length) { 
     createjs.Tween.get(person) 
     .to({x:gridSize * path[index][0] - pathOffset,y:gridSize * path[index][1] - pathOffset}) 
     .call(move); 
    } 
} 
move(); 

createjs.Ticker.setFPS(30); 
createjs.Ticker.addEventListener("tick", function(event){ 
    createjs.Tween.tick(1); 
    stage.update(); 
}); 

Этот код, кажется, перескакивает между путевыми точками, а не вообще. Любые идеи, что я могу делать неправильно или какие-либо кодеки/руководства, которые могут помочь?

ответ

2

Вам нужно добавить длительность (в миллисекундах) для вашей анимации, в противном случае он будет по умолчанию 0, то это приведет к «скачку», например: 500 за полсекунды

instead of: .to({x:..., y:...}) 
use:  .to({x:..., y:...},500) 

И секунду вещь: вам НЕ НУЖНО позвонить createjs.Tween.tick(1);, это обычно вызывается классом Tween.

Вот некоторая помощь и некоторые небольшие примеры: http://www.createjs.com/Docs/TweenJS/classes/Tween.html

Дополнительные примеры: https://github.com/CreateJS/TweenJS/tree/master/examples

+0

спасибо, но я хочу, чтобы управлять клещами вручную, так как путевые точки не на равных расстояниях друг от друга для них, если я использовал таймер на спрайт будет быстрее по всем точкам, которые находятся далеко друг от друга. –

+0

Если ваши путевые точки неравномерно распределены друг от друга, вы должны рассчитать расстояние до следующей путевой точки и установить продолжительность в зависимости от расстояния. В любом случае вам нужно установить продолжительность, если вы не хотите, чтобы ваш человек «прыгал» - как должен TweenEngine знать, сколько нужно продвинуться, если не установлена ​​длительность? Если вы все же хотите сами контролировать его, вы можете использовать '.get (person, {useTicks: true}). To (...)', тогда продолжительность должна определяться в тиках, а не секундах. Но imho самый простой способ - получить расстояние и умножить его на некоторый speedfactor. – olsn

+0

Спасибо, моя проблема была именно в этом, мне нужно было указать продолжительность анимации. Я пересчитываю это, исходя из расстояния от путевых точек, и все отлично работает! та. :) –

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

  • Нет связанных вопросов^_^