相关疑难解决方法(0)

SKLightNode投射阴影问题

我没有成功地让SKSpriteNode投射阴影,并且在从同一光源进入阴影时也会消失.我可以做到两个中的一个但不是两个.

根据文档:如果精灵位于由光投射的阴影内并且精灵的z位置低于光,则阴影会影响精灵的点亮方式.我所做的一切.我的SKLightNode的zPosition为100,所有其他节点的zPosition都较低.

我已经尝试了lightingBitMask,shadowCastBitMask和shadowedBitMask的任何和所有设置组合,但没有任何效果.

我发布了孤立的代码,重现了我的问题.蓝色的盒子投下阴影但没有被墙影覆盖.紫色的盒子没有阴影,被墙影覆盖.

灯光响应触摸运动,因此可以随意在屏幕上移动.该项目处于横向模式.

我错过了什么或没看到什么?

#import "GameScene.h"

@implementation GameScene {
    SKSpriteNode *lightBulb;
}

-(void)didMoveToView:(SKView *)view {

    typedef NS_OPTIONS(uint32_t, Level1LightCategory)
    {
        CategoryLightPlayer            = 1 << 0,
    };

    SKSpriteNode *worldNode = [SKSpriteNode spriteNodeWithColor:[SKColor clearColor] size:CGSizeMake(1136, 640)];
    worldNode.zPosition = 10;
    //worldNode.position = CGPointMake(self.size.width/2, self.size.height/2);
    [self addChild:worldNode];

    lightBulb = [SKSpriteNode spriteNodeWithColor:[SKColor yellowColor] size:CGSizeMake(20, 20)];
    lightBulb.zPosition = 100;
    lightBulb.position = CGPointMake(50, 50);
    [worldNode addChild:lightBulb];

    SKLightNode *light = [[SKLightNode alloc] init];
    //light.zPosition = 100; // <- tried setting this again but to no …
Run Code Online (Sandbox Code Playgroud)

shadow sprite-kit skspritenode sklightnode

7
推荐指数
1
解决办法
1795
查看次数

标签 统计

shadow ×1

sklightnode ×1

skspritenode ×1

sprite-kit ×1