【发布时间】:2023-03-15 10:18:01
【问题描述】:
说到SpriteKit,目前还没有很多“好”的教程,所以我请堆栈溢出大神来帮助我。
我正在为 iOS 构建一个 2d 平台游戏。地图将根据角色移动向各个方向滚动。我也会实现视差背景,但这不是我今天要讨论的问题。
显然,我正在尝试以最有效的方式执行此操作,以便我可以合并大关卡,但我不确定如何正确执行此操作。我是使用一堆代表平铺背景的小图像还是使用一个大图像(我听说这是不行的)。我是否使用带有所有图块的精灵表图像,然后将其分割成一个数组。
我不太确定如何实现图像数组并且只显示屏幕上的图像。我是否要从场景中移除所有图块,然后检查哪些图块在相机范围内,然后将它们添加回场景中。
我正在寻找有关如何使用 swift 专门为 SpriteKit 实现此功能的任何详细帮助。
感谢您的帮助!我真的很感激!!!!
【问题讨论】:
-
到目前为止你尝试过什么?本教程 (raywenderlich.com/137216/…) 似乎是一个不错的起点。
-
我刚刚发现了 Tile 地图节点,所以我现在正在看那个教程。感谢参考
-
平铺节点的全部意义在于重用相同的纹理以减少纹理内存,但最终会使用更多的 CPU 使用率。因此,如果您在 bg 中看到很多相同的图案,您可能需要考虑使用平铺地图,因为您将保存在可用内存中的值会超过所使用的 CPU 时间。如果您的 BG 没有可重复的模式,那么您不想使用图块。
-
@Knight0fDragon 感谢您的解释。所以只是为了确定。如果我想让我的背景的 1 层成为一个独特的图像,比如说 5760x1080 像素的区域。我应该为此使用 1 张图片,而不是将其拆分为图块?
-
你使用了大量的纹理内存,它必须是 2 个图像,因为最大纹理大小是 4096x4096
标签: swift image background sprite-kit tiled