如何加载内存中的文件以获得更好的场景转换?
How to load files in memory for better scene transition?
当我转换到我的游戏场景时,有一个巨大的滞后,FPS 下降得很低。我知道这是由于场景中的大图像所致。这些图像用于资产中的 Skspritenodes。我正在循环一个场景。当玩家输掉游戏时,游戏会通过转换到同一场景重新开始。无论如何,我可以将图像加载到内存中并永远保存在那里,而不是每次移动到游戏场景时它们都被删除和加载吗?
如果您要建议纹理和图集预加载。请具体说明如何以及在何处使用预加载代码。还有如何以及如何设置图集纹理和使用它们。我已经尝试过这种方法,不幸的是它不起作用。也许我做错了。
谢谢,
从评论中发现,有多种方法可以分解加载。这是我脑海中突然出现的一个:
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
}
}
}
当我转换到我的游戏场景时,有一个巨大的滞后,FPS 下降得很低。我知道这是由于场景中的大图像所致。这些图像用于资产中的 Skspritenodes。我正在循环一个场景。当玩家输掉游戏时,游戏会通过转换到同一场景重新开始。无论如何,我可以将图像加载到内存中并永远保存在那里,而不是每次移动到游戏场景时它们都被删除和加载吗?
如果您要建议纹理和图集预加载。请具体说明如何以及在何处使用预加载代码。还有如何以及如何设置图集纹理和使用它们。我已经尝试过这种方法,不幸的是它不起作用。也许我做错了。
谢谢,
从评论中发现,有多种方法可以分解加载。这是我脑海中突然出现的一个:
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
}
}
}