如何为 SKShapeNode 的不透明度设置动画?
How to animate the opacity of a SKShapeNode?
我正在处理游戏的说明屏幕,想向用户表明他们应该点击屏幕的特定区域。
所以我想展示一个动画
1) 手指在屏幕上缩放,然后 -- 工作正常--
2) 改变不透明度的矩形(显示点击那里)然后 -- 需要帮助--
3) 闪烁的文字说,"Tap here" -- 需要帮助--
对于 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])))
根据自己的喜好调整持续时间
我正在处理游戏的说明屏幕,想向用户表明他们应该点击屏幕的特定区域。
所以我想展示一个动画
1) 手指在屏幕上缩放,然后 -- 工作正常--
2) 改变不透明度的矩形(显示点击那里)然后 -- 需要帮助--
3) 闪烁的文字说,"Tap here" -- 需要帮助--
对于 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])))
根据自己的喜好调整持续时间