【发布时间】:2015-06-05 11:43:15
【问题描述】:
使用 Spritebuilder,我将时间线链接到它们自己以创建一个循环(例如,用于步行),但在某些情况下,我想使用未链接的时间线,并以编程方式循环它们。我相信我也许可以使用 CCActionSequence 来做到这一点,但找不到一个例子。谁能提供一个例子吗?
【问题讨论】:
标签: cocos2d-iphone spritebuilder
使用 Spritebuilder,我将时间线链接到它们自己以创建一个循环(例如,用于步行),但在某些情况下,我想使用未链接的时间线,并以编程方式循环它们。我相信我也许可以使用 CCActionSequence 来做到这一点,但找不到一个例子。谁能提供一个例子吗?
【问题讨论】:
标签: cocos2d-iphone spritebuilder
这是一个较晚的答案(您可能已经找到了某种解决方案,但无论如何我都会发布以供将来参考):据我所知,实际上并没有任何公开的方式来实现您想要在当前版本的 Cocos2d (v.3.4)。目前看起来这在 v.4.0 中不会发生变化(我根据 Github 上开发分支的当前状态做出这个假设,但这当然可以改变)。
也就是说,如果您愿意接受一点黑客攻击,我在 CCAnimationManager 上创建了一个 category,它公开了在 Spritebuilder 中创建的 CCBSequences(即时间线),从而可以更改哪些时间线应该在代码中链接在一起。使用此类别时,您可以执行以下操作:
//Get the timeline that you want to change
CCBSequence * timeline = [_myNode.animationManager sequenceForSequenceNamed:@"TimeLineToLoop"];
//Set the chainedSequenceId to the timelines own id to make it loop infinitely.
timeline.chainedSequenceId = timeline.sequenceId;
//Run the loop
[_myNode.animationManager runAnimationsForSequenceNamed:timeline.name];
【讨论】: