菜鸟教程小白 发表于 2022-12-12 19:43:49

ios - 一张带有 alpha 滞后 spritekit 的图像


                                            <p><p>我正在制作一款游戏,其中涉及一场沙尘暴。我决定基本概念是我将制作一个看起来大致像沙尘暴的图像,然后用一些粒子/其他任何东西来装饰它。</p>

<p>我在第一步遇到了问题。为了测试目的,我拼凑了一个简单的图像:
<img src="https://i.imgur.com/ct1vomc.png" alt="Poorly Made Sandstorm"/> </p>

<p>我将它添加到我的游戏中,FPS 下降了 60%。我对一张图像的效果感到惊讶,但我并不太担心。我将图像的分辨率减半,又一次出现了很多延迟。</p>

<p>spritekit/iOS 真的不擅长处理带有 alpha 的中等大小的图像吗?我在另一个问题上读到模拟器不擅长渲染,但这不是问题的全部。</p>

<p>有没有希望在不影响我的表现的情况下渲染它?粒子运行良好,其他一切都以 60fps 运行,但添加此图像显然会严重消耗资源。</p>

<p>编辑:我在手机上测试了我的游戏,没有任何延迟。显然,模拟器毕竟在渲染方面真的很糟糕。同时,我很好奇如何提高性能,因为显然存在某种滞后。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不是 SpriteKit 方面的专家,但我在简单的核心动画和分层方面有类似的经验。</p>

<p>问题在于,带有 alpha 的图像,即使对于其中的“不透明”部分,每次移动时都会在其下方的所有子层上引入重绘调用。首先检查这是否真的是问题所在,然后尝试其中一个,看看它是否有所改善:</p>

<ol>
<li><code>SKCropNode</code> 可以阻止渲染下面的元素</li>
<li>平铺图像,以便只有边框具有 alpha 值</li>
<li>拍摄下面的图层。</li>
<li>减少渲染节点的数量,隐藏“沙尘暴”下的节点。</li>
</ol>

<p>而且你应该使用真实设备来测试你的游戏性能,你不能依赖模拟器。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 一张带有 alpha 滞后 spritekit 的图像,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22119381/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22119381/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 一张带有 alpha 滞后 spritekit 的图像