SpriteKit & Swift:如何创建 "segments" 关卡 "stitched" 随机组合在一起以创建无尽的游戏?

SpriteKit & Swift: How to create level "segments" that are randomly "stitched" together to create an endless game?

我所说的概念类似于许多极简主义、流行的手机游戏中的游戏风格,例如 Color Switch、Line Zen、Phases 或 Bounce。这些是由一系列"levels"或"rooms"随机排列组成的无尽游戏,一个接一个,营造出无尽游戏的效果。关键是每个关卡的挑战都不是随机的,它们是事先设计好的,如果某个关卡是随机选择的,它就会出现在屏幕上,玩家就会穿过那个关卡。

我认为这个概念可以称为程序生成,但我并不肯定。

我如何使用 Swift 在 SpriteKit 中执行此操作?我不太确定从哪里开始,也许为每个关卡段创建一个函数,然后每隔几秒,随机选择一个放在屏幕上?

感谢任何帮助!

非常感谢!

程序生成是您描述的概念的名称。

根据您尝试制作的游戏类型,该方法会略有不同,但让我们看看无限跑酷游戏中的程序生成。您要做的是设置一个水平段缓冲区。缓冲区中段的总大小应该至少是屏幕大小的两倍。每个段都应该是同一段节点的子节点,并且它们的位置应该使每个段都在前一个结束后立即开始。

当一个片段移出屏幕时(玩家通过它):

  • 从段节点中删除该段
  • 初始化一个新段(可能来自 sks 文件)
  • 将新段添加到段节点
  • 将其放在段节点中最后一个段的后面。

用于选择下一个 "random segment" 的逻辑由您决定。它可以是真正随机的,或者您可以对其进行微调以获得最佳用户体验(避免重复片段,避免会破坏流程的片段等)。

关键是在片段离开屏幕时删除片段,并在缓冲区末尾添加新的片段。这必须是基于位置的,而不是基于时间的(即使游戏以恒定速度滚动,时间也不太可靠)。