Skip to content

Maze Generator

创建一个由矩形单元格网格组成的迷宫。随机生成墙壁,使得迷宫中的每个单元格都可以通过随机路径到达。

作者和贡献者Luxon5

警告

这是一个社区成员制作的扩展,但尚未经过GDevelop扩展团队的审核。因此,我们不能保证它符合官方扩展的所有质量标准。如果有疑问,请在使用之前与作者联系以了解扩展的详细信息或检查其内容。


提供生成迷宫的功能。

使用GenerateMaze动作设置一个具有特定大小并给它一个名称(迷宫ID)的迷宫。迷宫存储在场景变量中,可以通过指定迷宫ID来与其他函数一起使用。

有三个其他动作可以创建精灵对象,您可以使用这些对象将迷宫放置在场景中:

CreateMazeFloorObjects:为迷宫中的每个单元格创建瓷砖 CreateMazeWallObjects:在每个单元格之间创建对象。适用于墙壁 CreateMazeCornerObjects:在4个单元格角之间的点上创建对象。可以用来改善迷宫的可视化效果

还有很多其他辅助函数用于获取/设置迷宫属性或获取有用的信息。特别是:

CheckMazeWall:在事件表中使用的条件来测试单元格的存在哪些墙壁 FindMazePath:创建一个场景变量数组,其中包含从一个单元格到另一个单元格的方向序列

最后,还有一个可以附加到墙壁或地板对象上的MazeObject行为,它提供了一些额外的帮助条件、表达式和动作。请参考帮助URL中的示例GDevelop文件以了解它的使用方法。

阅读更多...

提示

请按照逐步指南学习如何安装新的扩展

动作

添加迷宫墙壁 在迷宫单元格的特定方向上添加墙壁。

创建迷宫角落对象 对于先前创建的迷宫,在迷宫单元格的交叉点处创建迷宫角落对象。

创建迷宫地板对象 对于先前创建的迷宫,创建将平铺迷宫单元格的迷宫地板对象。

创建迷宫墙壁对象 对于先前创建的迷宫,创建沿着迷宫单元格边缘的迷宫墙壁对象。

查找迷宫路径 在迷宫中找到两个单元格之间的路径,并将结果存储在场景变量数组中。

生成迷宫 指定迷宫的整体大小以及迷宫内部的瓷砖“单元格”大小。随机生成墙壁以形成迷宫。迷宫存储在内存中,并且可以使用此处选择的名为MazeID的名称引用。迷宫生成器扩展提供了其他引用此mazeID的动作,可用于创建实际的墙壁和地板对象,将迷宫放置在场景中。Remove a maze wall 在迷宫单元格中移除墙壁。

条件

迷宫中的单元格有墙壁 迷宫中选择的单元格在特定方向上有墙壁。

表达式

表达式

描述

MazeGenerator::MazeCellDepth(string, number, number)

返回距离至少有三个出口的单元格有多远的单元格。

string

迷宫ID

🔢 数字

行数

🔢 数字

列数

MazeGenerator::MazeCellHeight(string)

迷宫单元格的高度。

string

迷宫ID

MazeGenerator::MazeCellWidth(string)

迷宫单元格的宽度。

string

迷宫ID

MazeGenerator::MazeHeight(string)

整个迷宫的高度。

string

迷宫ID

MazeGenerator::MazeNumCells(string)

迷宫内部的单元格(地板砖)数量。

string

迷宫ID

MazeGenerator::MazeNumColumns(string)

迷宫中的列数。

string

迷宫ID

MazeGenerator::MazeNumRows(string)

迷宫中的行数。

string

迷宫ID

MazeGenerator::MazeNumWalls(string, number, number)

带有墙壁的方向数量。

string

创建迷宫时选择的迷宫ID

🔢 数字

行数

🔢 数字

列数

MazeGenerator::MazeWidth(string)

整个迷宫的宽度。

string

迷宫ID

MazeGenerator::MazeX(string)

迷宫的X位置。

string

迷宫ID

MazeGenerator::MazeY(string)

迷宫的Y位置。

string

迷宫ID

迷宫对象

此行为添加了一些用于与迷宫生成器扩展一起使用的辅助函数,可在事件表中使用。将其附加到对象后,在事件编辑器中搜索“Maze”以找到它们。此行为的对象需要与迷宫生成器的“CreateMazeFloorObject”、“CreateMazeWallObjects”或“CreateCornerObjects”函数一起使用,才能从辅助函数中受益。例如,“CheckMazeObjecetLocation”条件从迷宫的行号和列号中过滤对象。

行为动作

删除迷宫对象 删除迷宫对象,同时更新相应的迷宫场景变量。

行为条件

迷宫对象具有特定的行号和列号 迷宫对象在迷宫的某一行和某一列中。

检查对象的迷宫ID 通过迷宫ID检查对象是否属于某个迷宫。

检查迷宫对象的墙壁方向 检查迷宫对象是否为特定方向上的墙壁。

行为表达式

表达式

描述

Object.MazeObject::MazeObjectColumn()

返回迷宫对象的行号作为一个数字。

Object.MazeObject::MazeObjectMazeID()

返回迷宫对象的迷宫ID作为一个字符串。

Object.MazeObject::MazeObjectRow()

返回迷宫对象的行号作为一个数字。

Object.MazeObject::MazeObjectWallDirection()

返回迷宫对象的墙壁方向作为一个字符串(仅对墙壁对象存在)。


此页面是由 Maze Generator _扩展的社区自动生成的参考页面,由GDevelop,面向所有人的开源跨平台游戏引擎的社区制作。