我一直在尝试使用SpriteKit的SKLightNode
功能,但我无法操纵阴影。具体来说,无论我将其设置为什么,我falloff
的{{1}}属性似乎都没有做任何事情。这是我的灯光代码:
SKLightNode
以下是我将其添加到播放器的位置:
//set up lights
var light = SKLightNode()
light.categoryBitMask = LightCategory.Light1
/*THIS DOESN'T DO ANYTHING*/ light.falloff = CGFloat(0.01)
light.ambientColor = UIColor.whiteColor()
light.lightColor = UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.5)
light.shadowColor = UIColor(red: 0.5, green: 0.25, blue: 0.25, alpha: 0.5)
light.position = CGPointMake(size.width / 2.0, size.height * 0.75)
light.zPosition = DrawOrder.Lights
addChild(light)
According to Apple's documentation,//set up player
player.position = CGPoint(x: size.width * 0.1, y: size.height * 0.3)
player.shadowCastBitMask = LightCategory.Light1
player.zPosition = DrawOrder.Sprites
addChild(player)
应该设置“光源衰减速率的指数”并接受0.0到1.0的falloff
。但不管我设置CGFloat
的是什么,阴影都是无穷无尽的。
我做错了什么?
更新了屏幕截图(由于模拟器导致FPS较低):
答案 0 :(得分:2)
我以前遇到过这个问题。作为解决方法,您只需将falloff
设置为大于1的数字。事实上,如果您在SKLightNode
的{{1}}文件中创建了SKScene
,默认情况下它有.sks
falloff
,所以文档可能不正确?
修改强>
在您的情况下,您的问题似乎也是将1.5
设置为白色。将其设置为黑色,您将能够看到灯光正常工作。