首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKLightNode问题:光并不适用于所有预期的节点

SKLightNode问题:光并不适用于所有预期的节点
EN

Stack Overflow用户
提问于 2017-03-26 21:05:42
回答 1查看 132关注 0票数 0

我有一个节点树,它看起来像:

代码语言:javascript
复制
LayerWorld
     -> layerBackground  //contains the map tiles
     -> layerUnitSurface //contains all the sprite nodes moving around the map
     -> layerOverlay     //contains the huds, UI buttons etc

不确定是否相关,但我也根据以下定义使用.zPosition控制某些对象的定位:

代码语言:javascript
复制
#define UNITLAYER_ZPOS_PASSENGER    -10
#define UNITLAYER_ZPOS_GHOST        001
#define UNITLAYER_ZPOS_BACK         050
#define UNITLAYER_ZPOS_CITY         100
#define UNITLAYER_ZPOS_FRONT        200
#define UNITLAYER_ZPOS_SMOKE        300
#define UNITLAYER_ZPOS_BLAST        400
#define UNITLAYER_ZPOS_HUD          500
#define UILAYER_ZPOS_BUTTONS        1000

在特定的“检查”模式中,用户集中在一个特定的sprite上,我想突出显示这个视图。这个单元称为reconSprite,并添加到layerUnitSurface中。我想弄暗整张背景图,除了雪碧的近处。SKLightNode的例子显示了一个发光的字符移动在黑暗的地牢正是我要找的。

我显然是不正确地应用光节点,因为我从来没有看到任何照明变化在我的任何一层。不过,我不知道我做错了什么:

代码语言:javascript
复制
layerBackground.lightingBitMask = 1;
layerBackground.shadowCastBitMask = 0;
layerBackground.shadowedBitMask = 1;

SKLightNode *intelLightSource = [[SKLightNode alloc] init];
intelLightSource.categoryBitMask = 1;
intelLightSource.falloff = 0.5;
intelLightSource.ambientColor = [SKColor colorWithRed:0.3 green:0.3 blue:0.3 alpha:0.25];
intelLightSource.lightColor = [SKColor colorWithRed:0.8 green:0.8 blue:0.4 alpha:0.8];
intelLightSource.shadowColor = [SKColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];

intelLightSource.zPosition = UNITLAYER_ZPOS_SMOKE;
intelLightSource.position = reconSprite.position;
[layerWorld addChild:intelLightSource];

我预计这会使整个地图显得模糊,在reconSprite.position有一个明亮的区域。但是,没有明显的变化。整个场景仍然完全照耀着。

我知道光源是存在的,因为当我临时添加:

代码语言:javascript
复制
reconSprite.lightingBitMask = 1;
reconSprite.shadowCastBitMask = 1;
reconSprite.shadowedBitMask = 1;

reconSprite亮了,投下了一个黑色的阴影。

问:为什么我的SKLightNode reconSprite 会影响reconSprite而不是整个 layerBackground**?**?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-27 05:03:08

节点不从其父节点继承照明属性。因此,当我将正确的照明属性应用于背景层时,我必须对该层中的每个瓷砖应用相同的属性。然后一切如愿以偿。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43034542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档