这是我的设置,使用 Sprite Kit。首先,我在 SKScene 中创建一个简单的精灵节点,如下所示:
let block = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(90, 160))
block.zPosition = 2
block.shadowCastBitMask = 1
addChild(block)
然后在场景中添加一个光照节点:
let light = SKLightNode()
light.categoryBitMask = 1
light.falloff = 1
addChild(light)
果然,该块现在投下了一个漂亮的小阴影:
现在我通过操作它的 alpha 值来淡化块,例如通过运行一个动作:
let fadeOut = SKAction.fadeAlphaTo(0.0, duration: 5.0)
block.runAction(fadeOut)
这是尴尬的情况:当块变得越来越半透明时,阴影保持不变。这是动作结束前一刻的样子:
一旦 alpha 完全下降到 0.0,阴影就会从一帧到下一帧突然消失。
然而,随着投射它的物体变得越来越透明,让阴影慢慢变得越来越弱会更好。
问题:
Sprite Kit 可以实现这样的效果吗?如果是这样,你会怎么做?