我没有成功地让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)