【问题标题】:Loop an animation programatically in Cocos2d, like chaining the animation to itself in Spritebuilder在 Cocos2d 中以编程方式循环动画,例如在 Spritebuilder 中将动画链接到自身
【发布时间】:2015-06-05 11:43:15
【问题描述】:

使用 Spritebuilder,我将时间线链接到它们自己以创建一个循环(例如,用于步行),但在某些情况下,我想使用未链接的时间线,并以编程方式循环它们。我相信我也许可以使用 CCActionSequence 来做到这一点,但找不到一个例子。谁能提供一个例子吗?

【问题讨论】:

    标签: cocos2d-iphone spritebuilder


    【解决方案1】:

    这是一个较晚的答案(您可能已经找到了某种解决方案,但无论如何我都会发布以供将来参考):据我所知,实际上并没有任何公开的方式来实现您想要在当前版本的 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];
    

    【讨论】:

    • 谢谢你,Pontus,我今天晚些时候再看看。是的,我有一个解决方法,但这更优雅。看起来很有希望。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多