【问题标题】:SKLightNode not showing up in Sprite KitSKLightNode 未出现在 Sprite Kit 中
【发布时间】:2015-10-21 12:02:07
【问题描述】:

我的光:

self.light = [[SKLightNode alloc] init];
self.light.categoryBitMask = 0;
self.light.falloff = 1;
self.light.ambientColor = [UIColor whiteColor];
self.light.lightColor  = [[UIColor alloc] initWithRed:1.0 green:1.0 blue:0.0 alpha:0.5];
self.light.shadowColor = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.3];
self.light.zPosition = 200;
[self.world addChild:self.light];

在更新时,我将灯光位置更改为角色位置。

我什么都试过了,就是看不到我的光芒。

【问题讨论】:

    标签: ios sprite-kit sklightnode


    【解决方案1】:

    在场景中添加灯光不会在场景中添加白色圆圈、灯泡或类似的东西,它只是用该灯光照亮一切。所以你不会“看到光”,只会看到它的效果。

    如果您想看到灯光投射的阴影,您必须为每个必须投射阴影的对象激活阴影。您可以使用以下方法为您的 SKNode 执行此操作:

    yourSKNode.shadowCastBitMask = 1
    

    最后,如果你想在背景上制作凹凸效果,你必须使用以下方法创建背景:

    let background = SKSpriteNode(imageNamed: "theName", normalMapped: true)
    background.lightingBitMask = 1
    

    【讨论】:

    • 但是如何添加类似灯泡效果的东西?
    • 如果你想看到有光的地方,你必须自己添加一个 SKNode (例如,你可以添加一个带有灯泡纹理的 SKSpriteNode 或一个 SKEmitterNode 发射火细胞)。这就是你要找的东西吗?
    • 我在这里想要实现的是制作一个地牢爬行类游戏,其中角色有光(如聚光灯),当玩家在附近行走时,地图会变亮,其他地方会黑暗的。我尝试添加透明纹理,但我希望光线更加动态。
    • 啊!然后你应该使用你的方法和我的方法:你的方法来模拟视觉效果(在场景中创建一些可以看到的东西),而我的方法是创建光与场景中的对象产生的阴影。 SKLightNode 仅适用于创建动态阴影,它不会创建光的体积或空间表示。对不起!
    • 请看一下这个link。我可以使用阴影制作类似的效果吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多