SKLightNode的影子并没有隐藏精灵

时间:2017-09-11 19:34:49

标签: swift sprite-kit sklightnode

我目前正在使用SKLightNode,屏幕上有一些精灵。 我希望那些精灵根据光线的位置投射阴影,但我想要直接点亮灯光的精灵,并隐藏另一个精灵后面的精灵。

我有这段代码:

let light = SKLightNode()

override func didMove(to view: SKView)
{        
    light.categoryBitMask = 1
    light.falloff = 1.0
    light.shadowColor = SKColor.black
    light.zPosition = 2
    addChild(light) // I add the light

    for _ in 0...10
    {
        let object = SKSpriteNode(imageNamed: "stone")
        object.position = CGPoint(x: CGFloat.random(min: playableRect.minX, max: playableRect.maxX), y: CGFloat.random(min: playableRect.minY, max: playableRect.maxY))
        object.shadowCastBitMask = 1
        object.zPosition = 2
        addChild(object) // I add 10 wall sprites
    }
}

这导致:enter image description here

正如您所看到的,问题是阴影中的精灵并未被隐藏。

当我改变墙壁时' zPosition为1(低于光的zPosition),我有:

enter image description here

这里的一切都是隐藏的,仍然不好。

我从2015年的旧stackoverflow问题中读到,SpriteKit不支持这种情况。还是这样吗? 无论如何,有没有解决方法?

0 个答案:

没有答案