2015-01-23 2 views
0

У меня есть временная шкала, где я в основном хочу, чтобы у пользователя была возможность нажимать на экран, чтобы ускорить анимацию (ну, скорее, пропустить часть анимации) в более позднюю часть. Очевидно, что это нужно сделать с помощью кода.Перейти к ключевому кадру временной шкалы Spritebuilder

Я изучил это довольно много, и я не думаю, что есть простое решение. CCBSequence и CCBSequenceProperty предлагают немного надежды, но мои идеи иссякли и не видят способа сделать это.

Очевидно, что я знаю диспетчера анимации и использую его, чтобы запускать временные рамки и останавливать временные рамки, или даже вызывать что-то, когда график времени завершен, но мои возможности с манипулированием графиками времени, выполненными в Spritebuilder, не распространяются слишком далеко за пределы этого ,

Я могу думать о беспорядочном обходном пути, где в основном я просто дублирую секцию временной шкалы, которую я хочу пропустить, и когда экран прослушивается, остановить текущую временную шкалу и перейти к ней, но она кажется громоздкой и беспорядочной, и я «Мне хотелось бы избежать этого, если это возможно.

Спасибо за помощь!

ответ

1

Я нашел простое решение, после немного больше, глядя

Так что, если вы посмотрите в CCAnimationManager есть способ это называется:

- (void)jumpToSequenceNamed:(NSString*)name time:(float)time; 

Так с узлом вы можете позвонить

[node.animationManager jumpToSequenceNamed:@"MyTimeline" time:1.0]; // 1 Second 
0

Если ваша анимация не является чрезвычайно сложной, попробуйте реализовать ее с помощью действий cocos2d. http://www.cocos2d-swift.org/docs/api/index.html Используя API-интерфейс API, вы можете создавать анимацию с пользовательской скоростью при каждом нажатии.

+0

Спасибо, возможно, лучший способ сделать это ретроспективно, хотя это была довольно сложная анимация. – spaderdabomb