• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何对 SKSpriteNode 进行 alpha 掩码?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:04:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我知道有 SKCropNode,但它只会根据 maskNode 的 alpha 阈值完全输入或排除像素。我已经尝试过将 SKEffectNodeCIBlendWithAlphaMask 过滤器一起使用,但我得到的结果是不可见的,我也不确定如何移动蒙版大约。代码如下:

SKSpriteNode* overlay = [SKSpriteNode spriteNodeWithImageNamed"Overlay.png"];
//...
SKEffectNode* blendNode = [[SKEffectNode alloc] init];
blendNode.filter = [CIFilter filterWithName"CIBlendWithAlphaMask"];

UIImage* maskImage = [UIImage imageNamed"MaskImage.png"];
[blendNode.filter setValue:[maskImage CIImage] forKey"inputMaskImage"];

[blendNode addChildverlay];
[self addChild:blendNode];

我已经找到了完美的解决方案,使用 SKLightNode 点亮纹理,然后使用 SKBLendModeAdd 将其混合到帧缓冲区中,但由于某种原因它不会不适用于 iPhone 5 ( here's a related topic )。我知道 this topic也一样,这也没有帮助。

任何对 SKSpriteNode 进行正确 alpha 掩码的解决方案将不胜感激! 运行 iOS 8。



Best Answer-推荐答案


使用动态生成的 CIImage 作为掩码就可以了。它可以由 CIFilter 创建,使用您需要的任何渐变或图像作为 mask ,并将 inputCenter 属性设置为您想要的位置。

关于ios - 如何对 SKSpriteNode 进行 alpha 掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25928729/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap