【问题标题】:How to animate the opacity of a SKShapeNode?如何为 SKShapeNode 的不透明度设置动画?
【发布时间】:2016-09-29 16:32:45
【问题描述】:

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

所以我想在哪里展示一个动画

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) 完成后(手指敲击动画完成),@ 987654324@ 值更改为0.1,然后更改回0.5,然后 1) 发生,然后rect.alpha 更改为更改为0.1(循环中)。

非常感谢!!

【问题讨论】:

  • 我本来打算写一个答案,但它太多了,应该是你编码的东西。你已经知道sequence。在序列的末尾添加一个runBlock 动作,以在使用fadeToAlpha 的矩形上触发一系列动作。然后在这个动作结束时,你运行另一个块来触发 fingerScaling 动作。不要永远重复,这将永远为你重复
  • 感谢您的及时回复。请指导我如何在手指敲击动作 1) 发生后每 0.6 秒更改一次矩形的 alpha 值?谢谢!
  • 已经告诉你怎么做
  • 嗨,我还是个初学者,尝试过这个:pastebin.com/BZBFuqsA 矩形的褪色只发生一次,而不是连续发生。我怎样才能让它无限期,直到我想让它停止?谢谢
  • 嗨,我什至尝试了 rect.run(fingerTapScaleForever) 并且已编译但游戏无法运行。如果您能指出正确的方向,将不胜感激。非常感谢

标签: swift sprite-kit skshapenode


【解决方案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])))

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

【讨论】:

  • 希望对您有所帮助
猜你喜欢
  • 2010-11-28
  • 2015-03-15
  • 1970-01-01
  • 2019-12-24
  • 2013-04-21
  • 2013-10-24
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多