【问题标题】:How can I slow down a SKSpriteNode that is running SKAction followPath for a slow motion effect using Sprite Kit?如何使用 Sprite Kit 减慢运行 SKAction followPath 的 SKSpriteNode 以获得慢动作效果?
【发布时间】:2013-12-11 06:36:15
【问题描述】:

我基本上希望动作正在运行,然后在动作的中间创建一个慢动作效果,然后再将它从慢动作中取出。有人对如何做到这一点有任何好的反馈吗?我曾考虑过手动创建动作并使用更新方法,但我觉得这可能有点矫枉过正。我希望有一个更简单的解决方案。

我的另一个想法是停止动作,然后以较慢的持续时间重新开始,但我认为它不会保持在同一条路径上,而且可能看起来很奇怪。

这是我用来创建动作的代码。

CGMutablePathRef cgpath = CGPathCreateMutable();
CGPathMoveToPoint(cgpath,NULL, mysprite.position.x, mysprite.position.y);
CGPathAddCurveToPoint(cgpath, NULL, cp1.x, cp1.y, cp2.x, cp2.y, e.x, e.y);
[mysprite runAction:[SKAction sequence:@[[SKAction followPath:cgpath asOffset:NO orientToPath:YES duration:3]]]];
CGPathRelease(cgpath);

【问题讨论】:

    标签: ios objective-c sprite-kit


    【解决方案1】:

    每个节点都有一个speed 属性:

    应用于节点及其执行的所有动作的速度修饰符 后代。

    讨论
    默认值为 1.0,表示所有动作都运行 以他们的正常速度。如果您设置不同的速度,时间会显示为 对于在节点上执行的所有操作及其运行速度更快或更慢 子孙。例如,如果您将速度值设置为 2.0,则操作会运行 快两倍。

    您可以将其设置为小于 1 的值,以使操作运行得更慢。您甚至可以为速度设置动画以逐渐减慢:

    [mySprite runAction:[SKAction speedTo:0.5 duration:1.0]];
    

    【讨论】:

    • 太棒了!谢谢 :) 需要注意的一件事:持续时间是减速到该速度需要多长时间,而不是该速度会持续多长时间。
    猜你喜欢
    • 2013-11-19
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多