SpriteKit& Swift:如何创建随机“拼接”在一起创建无尽游戏的关卡“片段”?

时间:2016-03-13 00:28:47

标签: swift sprite-kit skspritenode skscene procedural-generation

我所说的概念类似于许多简约流行的手机游戏中的游戏风格,如Color Switch,Line Zen,Phases或Bounce。这些是由一系列“水平”或“房间”组成的无尽游戏,这些游戏以随机顺序排列,并且是一个接一个,创造了无尽游戏的效果。关键是每个级别的挑战都不是随机的,它们是之前制定的,如果某个级别是随机选择的,它会出现在屏幕上并且玩家会在该级别上移动。

我认为这个概念可能被称为程序生成,但我并不积极。

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

任何帮助表示赞赏!

非常感谢!

1 个答案:

答案 0 :(得分:2)

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

根据你想要制作的游戏类型,这种方法会有所改变,但让我们看一下无限跑步游戏中的程序生成。你想要做的是设置一个级别段的缓冲区。缓冲区中段的总大小应至少是屏幕大小的两倍。每个段应该是相同段节点的子节点,并且它们应该被定位,以便每个节点在前一个节点结束后立即开始。

当一个片段离开屏幕时(播放器通过它):

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

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

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