鉴于lz不能打开我的gm8的随机地牢,我简要描述一下个人全随机地牢的思路:创建三种物体,分别是空气,墙壁,中心标志(含变量ok,初值为0,描述是否被连接过)第一步:用双for循环遍历整个房间,填满墙壁。第二步:collision函数检测指定矩形方块内是否有空气,如果否,则双for循环遍历所有墙壁,矩形区内全部墙壁换成空气方块,并在矩形中心放置中心标志。重复直到生成完毕全部房间。第三步,随机一个中心方块为起点,目标是连接离他最近的一个中心方块,连接完毕后目标移动到下一中心方块并重复,直到全部中心方块被连接。此步完成后所有房间均可抵达。详细算法:以第一个方块为【当前操作方块】,检测目标方块与【当前操作方块】的角度,根据角度结合随机决定下一步要打通哪个方块,并移动【当前操作方块】到该方块(例如目标在当前的139度方向,则下一步有两种选择,左打通或上打通,根据随机决定左还是上,假设随机结果为上,则【当前操作方块】移动到上面一个墙壁,并将此方块变为空气,重复进行,若此方块为中心方块,则将下一目标设为最近的且ok=0的中心方块,此方块设置变量ok=1)。第四步,随机选取两个中心方块,以第三步方式打通之间的路,增加地图随机性,此步设定次数上限。第五步,随机设置角色位置和楼梯位置,根据中心块位置随机设置怪物,物品,npc等,完成后删除空气方块和中心标志。至此生成完毕。