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,面向所有人的开源跨平台游戏引擎的社区制作。