gpt4 book ai didi

iOS 7 Sprite Kit 动画速度变化

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:16:50 24 4
gpt4 key购买 nike

我有一个 runAction,它正在为 SKSpriteNode 设置动画。我让节点在 repeatActionForever 中上下移动。我希望节点在节点向上移动时减速,在节点向下移动时加速。

[node runAction:[SKAction repeatActionForever:
[SKAction sequence:@
[[SKAction speedTo:0.1 duration:0.5],
[SKAction moveToY:2 * node.size.height / 3 duration:0.5],
[SKAction speedTo:1 duration:0.5],
[SKAction moveToY:node.size.height / 2 duration:0.5],
[SKAction moveToY:node.size.height duration:1],
[SKAction moveToY:node.size.height / 2 duration:1]]]]];

当我添加行 [SKAction speedTo:0 duration:0.5] 时,其余代码在 0.5 秒后以 0 的速度运行,即使我添加了第二个 speedTo 操作将速度增加到 1。

问题:如何在节点移动时改变节点的速度,而不是每个方向都保持静止速度。

提前致谢。

最佳答案

查找各种类型的 SKActionTimingMode 并根据需要将其应用到您的情况中。这将消除对 [SKAction speedTo:0.1 duration:0.5] 之类的需求。

https://developer.apple.com/library/mac/documentation/SpriteKit/Reference/SKAction_Ref/Reference/Reference.html#//apple_ref/c/tdef/SKActionTimingMode

您可以使用 SKActionTimingEaseOut 来执行使节点向上移动的操作,并使用 SKActionTimingEaseIn 来执行使节点向下移动的操作。

SKAction *actionMoveUp = [SKAction moveToY:2 * node.size.height / 3 duration:0.5];
actionMoveUp.timingMode = SKActionTimingEaseOut;

SKAction *actionMoveDown = [SKAction moveToY:node.size.height / 2 duration:0.5];
actionMoveDown.timingMode = SKActionTimingEaseIn;

SKAction *actionMoveUpHalf = [SKAction moveToY:node.size.height duration:1];
actionMoveUp.timingMode = SKActionTimingEaseOut;

[node runAction:[SKAction repeatActionForever:
[SKAction sequence:@
[actionMoveUp,
actionMoveDown,
actionMoveUpHalf,
actionMoveDown]]]];

关于iOS 7 Sprite Kit 动画速度变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615476/

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