阴影位掩码与阴影投射位掩码

5
我不理解SKSpriteNode中的shadowedBitMask和shadowCastBitMask之间的区别,它们与ios开发中的objective-c有关。根据文档,shadowedBitMask被定义为“通过执行逻辑AND操作,将其shadowCastBitMask属性与光源的categoryBitMask属性进行比较,以确定此精灵是否受到由光源生成的阴影的影响。如果比较结果为非零值,则使用带阴影效果绘制精灵。”默认值为0x00000000(所有位都清除)。shadowCastBitMask用于“通过执行逻辑AND操作,将此精灵的shadowedBitMask属性与光源的categoryBitMask属性进行比较,以确定此精灵是否阻挡光线(投射阴影)。如果比较结果为非零值,则该精灵将在其后面投射阴影。”请问有人能重新表述或举个例子吗?因为我不理解shadowedBitMask是做什么的?
1个回答

5

如果光源在该对象上创建阴影,shadowCastBitMask 将设置该属性。

如果对象接收到投射的阴影,则 shadowedBitMask 会被设置。

请不要忘记,为了在另一个物品上投射阴影,光源必须在 zPosition 上更高。


实际上,当使用shadowedBitMask时,我无法获得结果。我有SKLightNode和2个SKSpriteNode,对于shadowedBitMask的所有值,它都不会在一个对象的阴影覆盖另一个对象时给出任何结果。还有一些问题没有得到解答- https://dev59.com/Iojca4cB1Zd3GeqPrxx4。你能给出一个使用shadowedBitMask得到结果的代码示例吗? - Alexey Pichukov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接