https://github.com/ZowAultre/PushBoxz

## 4. 游戏内流程

游戏内使用 Canvas UI 组织完整体验流程。

### 4.1 封面 UI

封面包含:

- `Start`:进入关卡选择。

- `Create`:进入游戏内自定义关卡编辑器。

- `Quit`:退出游戏。

### 4.2 关卡选择 UI

关卡选择界面支持分页显示。

官方模式:

- 显示 `LevelSceneBuilderRegistry` 中启用的官方关卡。

- 未解锁的关卡不可点击。

- 通关一个关卡后会解锁下一个关卡。

- 已通关关卡会通过存档标记。

创造模式:

- 显示玩家在游戏内创建的自定义关卡。

- 自定义关卡与官方 Unity 关卡资产分开存储。

- 关卡选择界面中有按钮可以在官方模式和创造模式之间切换。

- 创造模式中可以粘贴他人分享的关卡码,并点击 `Load` 导入关卡。

创造模式删除:

- 点击 `Delete` 后进入删除选择模式。

- 按钮文本会变为 `Select`。

- 此时点击某个自定义关卡会删除该关卡。

- 再次点击 `Select` 会退出删除模式,按钮文本恢复为 `Delete`。

创造模式导入关卡码:

- 在关卡码输入框中粘贴 `PBZ1-XXXX-XXXX` 形式的关卡码。

- 点击 `Load`。

- 如果校验通过,该关卡会保存为创造模式关卡,并刷新到关卡列表中。

- 如果关卡码不完整、被改错或内容不合法,会显示错误提示。

- 导入的关卡会使用创造模式自动 ID,例如 `C001`、`C002`。

### 4.3 游戏 HUD

进入关卡后显示:

- 当前关卡 ID 或名称。

- 当前步数。

- `Undo`:回撤一步。

- `Restart`:重置当前关卡。

- `Menu`:返回关卡选择。

- `Share`:复制当前关卡的关卡码到系统剪贴板。

基础操作:

- `WASD`:移动玩家。

- 格子步进模式下,朝箱子继续移动即可推动箱子。

- 连续移动模式下,可根据当前配置使用交互键推动箱子。

分享关卡码:

- 进入一个关卡后点击 `Share`。

- 游戏会把当前关卡编码成 `PBZ1-XXXX-XXXX` 形式的文本并复制到剪贴板。

- 该关卡码只包含玩法数据,不包含预制体、音效、UI 资源、通关状态或解锁状态。

- 其他玩家可以在创造模式关卡列表中粘贴并 `Load`,不需要联网。

### 4.4 通关 UI

当所有箱子都与目的地重合时,显示通关弹窗:

- `Continue`:返回关卡选择。

- `Next`:如果存在下一关,则直接进入下一关。

通关时会立刻解锁下一关,因此点击 `Next` 前下一关已经处于可进入状态。

## 5. 游戏内自定义关卡编辑器

游戏内自定义编辑器用于让玩家创建简单的创造模式关卡,不需要打开 Unity Editor 工具。

主要控件:

- 尺寸 Slider:设置正方形地图尺寸。

- 画笔按钮:墙、目的地、箱子、玩家、擦除。

- 模式按钮:

  - 初始显示 `Mode`。

  - 切换后显示当前模式 `Push` 或 `Pull`。

- 网格按钮:点击格子进行绘制,也可以按住鼠标左键扫过多个格子连续绘制。

- `Save`:校验并保存到创造模式关卡列表。

- `Back`:返回封面。

关卡 ID:

- 玩家不填写关卡 ID 时,保存后会自动生成短 ID,例如 `C001`。

- 如果关卡 ID 输入框中填写的是普通文本,会作为该自定义关卡的 ID 使用。

- 如果关卡 ID 输入框中粘贴的是 `PBZ1-XXXX-XXXX` 形式的关卡码,点击 `Save` 时不会立刻保存,而是会先把该关卡码加载到编辑器 Grid 中。

- 通过关卡码加载到 UI5 后,尺寸 Slider 会更新为该关卡宽高中的较大值,Grid 会刷新为关卡码中的墙、目的地、箱子和玩家。

- 玩家可以继续修改这个关卡,再次点击 `Save` 才会保存到创造模式关卡列表。

键盘测试:

- `WASD`:移动已放置的玩家。

- `F`:根据当前模式推动或倒拉玩家正前方的箱子。

保存自定义关卡前需要通过校验:

- 必须有且只有一个玩家。

- 至少有一个箱子和一个目的地。

- 箱子数量必须等于目的地数量。

- 玩家和箱子必须位于合法地板格子上。

保存成功后,自定义关卡会出现在关卡选择界面的创造模式列表中。

## 6. 关卡码说明

关卡码用于离线分享玩家自定义关卡。它不需要服务器,也不需要网络连接。

关卡码格式示例:

```text

PBZ1-XXXX-XXXX-XXXX

```

格式规则:

- `PBZ1` 表示 PushBoxz 第 1 版关卡码格式。

- 后续内容只使用大写字母、数字和连字符,方便复制、粘贴和转发。

- 关卡码内置校验码,如果输入错误会导入失败。

关卡码包含:

- 地图尺寸。

- 地形格子。

- 目的地。

- 箱子位置。

- 玩家位置。

关卡码不包含:

- 预制体、材质、音效、字体等本地资源。

- 玩家通关状态。

- 关卡解锁状态。

- 当前游玩过程中的撤销历史或临时状态。

Published 22 hours ago
StatusReleased
PlatformsHTML5
Authorinoship studio
GenreStrategy, Puzzle
Made withUnity
TagsCreative, Cult Classic
AI DisclosureAI Assisted, Code, Graphics, Text

Leave a comment

Log in with itch.io to leave a comment.