SpriteKit SKLightNode衰减属性无效

时间:2015-04-23 15:43:38

标签: ios swift

我一直在尝试使用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较低):

screenshot showing the issue

1 个答案:

答案 0 :(得分:2)

我以前遇到过这个问题。作为解决方法,您只需将falloff设置为大于1的数字。事实上,如果您在SKLightNode的{​​{1}}文件中创建了SKScene,默认情况下它有.sks falloff,所以文档可能不正确?

修改

在您的情况下,您的问题似乎也是将1.5设置为白色。将其设置为黑色,您将能够看到灯光正常工作。