深度强化学习课程文档
(可选)如何自定义环境
并获得增强的文档体验
开始使用
(可选)如何自定义环境
如果您想自定义游戏关卡,请打开关卡场景 res://scenes/level.tscn
,然后打开 Godot 文件系统中的 res://scenes/modules/
文件夹

该关卡包含 3 个使用模块、机器人和一些额外碰撞体制作的房间,这些碰撞体可以防止在第一个房间通过爬墙到达钥匙来完成关卡。通过将模块添加到场景中,您可以添加新的房间和物品。
如果您点击“钥匙”节点(它在 Room3
中,您也可以搜索它),然后点击 Node > Signals
,您会看到 collected
信号连接到机器人和宝箱。我们使用它来跟踪机器人是否已收集钥匙,并解锁宝箱。同样地,使用杠杆激活楼梯也应用了相同的系统,如果您添加更多的杠杆/楼梯/钥匙,您可以使用信号连接它们。

如果您切换到 Groups
,您会看到钥匙是 resetable
组的成员。在同一个组中,我们有木筏、杠杆、宝箱、玩家,并且可以添加任何需要在剧集重置时重置的节点。

为了使其正常工作,resetable
组中的每个对象都需要实现 reset()
方法,该方法负责重置该对象。
因为我们有多个关卡场景实例用于训练,我们不会重置所有 resetables
,而只重置同一场景中的那些。在 level_manager.gd
中,我们有一个 reset_all_resetables()
方法负责此操作,并且在需要重置时由机器人脚本调用。
更改关卡大小后,还需要更新 robot_ai_controller.gd
中的 level_size
变量。为此,只需粗略测量关卡的最长尺寸,然后更新变量。
如果您更改了 AIController
需要跟踪的对象数量(杠杆、木筏等),您将需要更新脚本中的相关代码,包括这些对象的导出属性,然后在关卡场景中 AIController
的检查器属性中连接它们

在此之后,您可能还需要更新演示记录场景中 AIController
的相同属性。