我所说的概念类似于许多简约流行手机游戏中的游戏风格,例如 Color Switch、Line Zen、Phases 或 Bounce。这些是由一系列“关卡”或“房间”组成的无尽游戏,这些“关卡”或“房间”按随机顺序放置,并且一个接一个,创造出无尽游戏的效果。关键是每个关卡中的挑战都不是随机的,它们是之前制定的,如果随机选择某个关卡,它就会出现在屏幕上,玩家可以通过该关卡。
我认为这个概念可能被称为程序生成,尽管我并不肯定。
我如何使用 Swift 在 SpriteKit 中执行此操作?我不太确定从哪里开始,也许为每个关卡段创建一个函数,然后每隔几秒,随机选择一个函数放在屏幕上?
感谢任何帮助!
非常感谢!
最佳答案
程序生成是您所描述的概念的名称。
根据您尝试制作的游戏类型,该方法会略有不同,但让我们看看无限跑酷游戏中的程序生成。您想要做的是设置一个级别段缓冲区。缓冲区中段的总大小应至少是屏幕大小的两倍。每个段都应该是同一段节点的子节点,并且它们的位置应该使得每个段在前一个段结束后立即开始。
当一个片段移出屏幕时(玩家经过它):
- 从段节点中删除该段
- 初始化一个新段(可能来自 sks 文件)
- 将新段添加到段节点
- 将其放置在段节点中最后一个段的后面。
用于选择下一个“随机段”的逻辑取决于您。它可以是真正随机的,也可以对其进行微调以获得最佳用户体验(避免重复片段、避免会破坏流程的片段等)。
关键是在片段离开屏幕时将其删除,并在缓冲区末尾添加一个新片段。这必须是基于位置的,而不是基于时间的(即使游戏以恒定速度滚动,时间也不太可靠)。
关于swift - SpriteKit & Swift : How to create level "segments" that are randomly "stitched" together to create an endless game?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35965073/