代码之家  ›  专栏  ›  技术社区  ›  Discoveringmypath

如何使用计时功能缓慢加速SpriteKit的缩放功能

  •  4
  • Discoveringmypath  · 技术社区  · 7 年前

    我有一个雪碧,我正试图扩大规模。我正在使用scaleTo skaction来做这件事。。。我想让它慢慢缓下来。这是我最初的解决方案:

        let scal = SKAction.scale(by: 100, duration: 10)
        scal.timingMode = SKActionTimingMode.easeIn
    

    问题是,当它向外扩展时,由于它向外扩展的幅度太大,似乎会减慢速度。所以我需要使用timeingFunction来为动作编写自定义easeIn。

    https://youtu.be/CE-B27gSXJI

    问题:我不知道如何使用计时函数来实现这一点,而且我还没有找到一个好的源代码作为参考?

    任何帮助都将不胜感激,谢谢!!!

    2 回复  |  直到 7 年前
        1
  •  3
  •   JohnV    7 年前

    https://github.com/raywenderlich/SKTUtils 具体来说,看看SKTTimingFunctions。swift和Sktefects。敏捷的

    http://easings.net

    希望这有帮助!

        2
  •  2
  •   Discoveringmypath    7 年前

    我将把上面的答案标记为正确,但这最终是我的解决方案,我想与大家分享,因为它很容易实现。

    . 然后可以使用此t来操纵动画的计时。

    因此,如果您查看上面的链接,您可以通过使用Ray的SKTTimingFunctions中的函数中包含的内容来获得所需的效果。敏捷的

    let scal = SKAction.scale(by: 100, duration: 10)
    scal.timingFunction = { t in
        return t*t*t*t*t
    }