如何动画SKShapeNode的不透明度?
问题描述:
我正在操作游戏的说明屏幕,并想向用户显示他们应该点击屏幕的某个区域。如何动画SKShapeNode的不透明度?
所以我想显示的动画,其中
1)手指正在扩大和缩小画面,接着 - 工作fine--
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])))
调整持续时间按自己的喜好
+0
希望这可以帮助 –
我打算写一个答案,但它是太多,应该是你的代码。你已经知道“序列”了。在序列的末尾添加一个'runBlock'动作来在使用'fadeToAlpha'的矩形上触发一系列动作。然后在这个动作结束时,你运行另一个触发fingerScaling动作的块。不要永远使用重复,这将永远为你重复 – Knight0fDragon
感谢您的及时回复。请指导我如何改变这个矩形的α值,每0.6秒,在手指敲击动作1)发生后请?谢谢 ! – Has
已经告诉你如何做到这一点 – Knight0fDragon