swift - 如何为 SKShapeNode 的不透明度设置动画?

标签 swift sprite-kit skshapenode

我正在处理游戏的说明屏幕,并希望向用户表明他们应该点击屏幕的某个区域。

所以我想展示一个动画

1) 一根手指在屏幕上缩放,然后是 -- 工作正常--

2) 改变不透明度的矩形(显示以点击那里)然后 -- 需要帮助 --

3) 一条闪烁的文字说,“点击这里”——需要帮助——

对于 1),我有这个(工作正常):

    finger = SKSpriteNode(texture: fingerTxt)
    finger.position = CGPoint(x: 330, y: 450)
    finger.zPosition = 10
    InstHolderNode.addChild(finger)

    let fingerTapScaleDown = SKAction.scale(by: 0.6, duration: 0.7)
    let fingerTapScaleUp = SKAction.scale(by: 1.6, duration: 0.7)
    let fingerScalingSequence = SKAction.sequence([fingerTapScaleDown,fingerTapScaleUp])

    let fingerTapScaleForever = SKAction.repeatForever(fingerScalingSequence)
    finger.run(fingerTapScaleForever)

对于2),我有:

    var rect = SKShapeNode(rectOf: CGSize(width: 150.0, height: frame.height * 2))
    rect.position = CGPoint(x: 300, y: 100)
    rect.fillColor = SKColor.brown
    rect.alpha = 0.5
    InstHolderNode.addChild(rect)

问题:

如何同步 1)2) 以便在 1) 完成后(手指点击动画完成),rect.alpha 值更改为 0.1 然后更改回 0.5 然后 1) 发生然后 rect.alpha 更改为连续更改为 0.1(在循环中)。

非常感谢!!

最佳答案

试试这个:

    var fadeOut = SKAction.fadeAlpha(to: 0.1, duration: 0.5)
    var fadeIn = SKAction.fadeAlpha(to: 0.5, duration: 0.5)

    rect.run(SKAction.repeatForever(SKAction.sequence([fingerScalingSequence, fadeOut, fadeIn])))

根据自己的喜好调整持续时间

关于swift - 如何为 SKShapeNode 的不透明度设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39775608/

相关文章:

ios - 重启游戏时FPS不断下降

objective-c - SKShapeNode定位

ios - 使用 SKShapeNode 和 CGPath 在 Sprite Kit 中绘制虚线

ios - 如何以正确的顺序创建多个SKShapeNode?

ios - 从另一个类中的 UITextField 访问文本

iOS 13 状态栏样式

ios - MobAD 插页式退出后无法识别触摸 - Swift

swift - 如何在 Swift 中获得 `Pipe` 到标准输入/输出/错误?

ios - CIColorInvert 和 CIColorMatrix 没有正确反转图像

swift - Sprite 出现在节点数中但不可见