菜鸟教程小白 发表于 2022-12-13 02:04:44

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


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

<pre><code>SKSpriteNode* overlay = ;
//...
SKEffectNode* blendNode = [ init];
blendNode.filter = ;

UIImage* maskImage = ;
forKey:@&#34;inputMaskImage&#34;];

;
;
</code></pre>

<p>我已经找到了完美的解决方案,使用 <code>SKLightNode</code> 点亮纹理,然后使用 <code>SKBLendModeAdd</code> 将其混合到帧缓冲区中,但由于某种原因它不会不适用于 iPhone 5 ( <a href="https://stackoverflow.com/questions/25912880/sklightnode-not-working-on-real-device-iphone-5" rel="noreferrer noopener nofollow">here&#39;s a related topic</a> )。我知道 <a href="https://stackoverflow.com/questions/21242303/how-to-create-an-alpha-mask-in-ios-using-sprite-kit" rel="noreferrer noopener nofollow">this topic</a>也一样,这也没有帮助。</p>

<p>任何对 <code>SKSpriteNode</code> 进行正确 alpha 掩码的解决方案将不胜感激!
运行 iOS 8。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用动态生成的 <code>CIImage</code> 作为掩码就可以了。它可以由 CIFilter 创建,使用您需要的任何渐变或图像作为 mask ,并将 <code>inputCenter</code> 属性设置为您想要的位置。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何对 SKSpriteNode 进行 alpha 掩码?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25928729/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25928729/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何对 SKSpriteNode 进行 alpha 掩码?