[文档翻译]-[Single-Player CCG Kit]-[Random map generation]

原文

地图

该套件生成的随机地图遵循与《Slay the Spire》中相似的结构。在本节中,我们将详细讨论此功能的工作原理以及如何根据游戏需求对其进行自定义。

配置

地图的配置有三个主要元素:

Configuration (配置):地图的主要配置资产。它指定了它具有的不同层、可用节点的类型、起始节点的数量和 pre-boss 节点的数量。
Layers (图层):图层是地图的level/height (级别/高度)。一张地图由几层组成。您可以指定该层的节点属于某种类型的概率。
Nodes (节点):节点是位于层中的元素。一个层由几个节点组成。节点的示例包括:敌人、精英、老板、商人、休息、宝藏等。该套件默认仅提供敌人/精英/老板节点,您需要对其进行扩展以支持任何额外的自定义节点。

所有这些元素都是可编写脚本的对象,您可以通过右键单击项目视图并选择适当的Single-Player CCG Kit/Map选项来创建它们。他们的数据可以直接在 Unity Inspector 中修改。


运行时

地图功能位于地图场景中。此场景中最重要的游戏对象是名为Map的游戏对象,由以下子对象组成:

MapScreen:该对象负责初始化场景,包括加载/保存相关游戏数据。
MapGenerator:该对象负责根据指定配置实际生成随机地图。生成的地图是确定性的(即,给定相同的种子,生成的地图将始终相同)。
MapView:这个对象负责在屏幕上渲染地图。
MapTracker:这个对象负责管理玩家在地图上的进展。


玩家进度

该套件使用 Unity 的PlayerPrefs来存储随机生成的地图的种子以及玩家在其中的进度。您可以在MapScreen脚本中找到相关代码。


从地图画面切换到战斗画面

通过选择地图节点从地图屏幕到战斗屏幕的转换发生在MapTracker脚本的SelectNode和TravelToNode方法中。这些也是您在实现自己的自定义地图节点时想要扩展的方法。