gpt4 book ai didi

ios - 通过 SkAction.followPath (iOS) 改变物体移动的速度

转载 作者:可可西里 更新时间:2023-11-01 00:53:21 25 4
gpt4 key购买 nike

是否可以通过 SKAction.followPath 改变物体移动的速度?例如,假设我们使用下面的代码让球沿着矩形路径运动。该代码将在整个路径中使用恒定速度。但是,如果我们想改变物体沿矩形的速度怎么办?

let goPath = SKAction.followPath(ballPath!.CGPath, duration: 2.5)
movingBall.runAction(goPath)

有效地让球沿着由不同速度的不同线构成的矩形路径(而不是一条路径)的唯一选择是什么?

谢谢!

最佳答案

实现此目的的两种方法。

第一种方式:

您可以使用 SKAction.speedBy。您将 SKAction.speedBy 与您的 followPath 分组。示例:

    movingBall.runAction(SKAction.group([
SKAction.followPath(ballPath!.CGPath, duration: 2.5)
SKAction.speedBy(4, duration: 2.5)
]))

现在球将在 2.5 秒内达到 4 倍的速度。 注意:现在我们不会遵守followPath 持续时间。随着时间的推移,我们正在增加 Sprite 的速度。它将在不到 2.5 秒内到达目的地。

第二种方式:

另一种方法是使用计时功能。这可能是更好的方法,因为我们可以更好地控制球在动画期间移动的速度。

例子:

let goPath = SKAction.followPath(ballPath!.CGPath, duration: 2.5)

goPath.timingFunction = {
t in
return powf(t, 3)
}

movingBall.runAction(goPath)

计时函数的工作方式是,它为您提供一个 block ,该 block 将当前耗时作为 float 。你的工作是使用某种计算来修改传入的值,然后返回它。

我只是计算进入函数的任何时间并返回它。这使得球开始时非常慢,然后在动画结束时非常快地加速。

您可以真正发挥创意并使用正弦波使物体弹跳等。请注意任何返回值 <0 都将被忽略。

关于ios - 通过 SkAction.followPath (iOS) 改变物体移动的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com