菜鸟教程小白 发表于 2022-12-11 19:48:33

ios - 如何在内存中加载文件以获得更好的场景过渡?


                                            <p><p>当我过渡到我的游戏场景时,会出现巨大的延迟,并且 FPS 下降得非常低。我知道一个事实是由于我的场景中有大图像。这些图像用于 Assets 中的 Skspritenodes。我正在循环播放一个场景。当玩家输掉比赛时,游戏会通过转换到相同的场景重新开始。无论如何我可以将图像加载到内存中并将它们永远保存在那里,而不是每次移动到游戏场景时它们都会被删除和加载?</p>

<p>如果您要建议纹理和图集预加载。请具体说明如何以及在何处使用预加载代码。还有如何设置图集纹理并使用它们。我已经尝试过这种方法,不幸的是它不起作用。也许我做错了。</p>

<p>谢谢,</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>从评论中可以看出,有多种方法可以分解加载。这是我脑海中突然出现的一个:</p>

<pre><code>class Scened: SKScene {

var needsLoading = false

func loadChunk1() {}
func loadChunk2() {}
func loadChunk3() {}
func loadChunk4() {}
func loadChunk5() {}

override func didMove(to view: SKView) {
    if needsLoading { loadChunk1() }
}
override func didEvaluateActions() {
    if needsLoading { loadChunk2() }
}
override func didSimulatePhysics() {
    if needsLoading { loadChunk3() }
}
override func didApplyConstraints() {
    if needsLoading { loadChunk4() }
}
override func didFinishUpdate() {
    if needsLoading {
      loadChunk5()
      // Disable loading after the last chunk:
      needsLoading = false
    }
}
}
</code></pre>

<p> <a href="/image/lHLMn.png" rel="noreferrer noopener nofollow"><img src="/image/lHLMn.png" alt="enter image description here"/></a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在内存中加载文件以获得更好的场景过渡?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44379096/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44379096/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在内存中加载文件以获得更好的场景过渡?