【cocos2dx 3.3 lua】08 随机迷宫生成

本文介绍了使用Cocos2d-x 3.3 Lua实现随机迷宫生成的过程,包括填充地图、挖空访问点、设置起始点、递归访问并随机选择路径等步骤,最终实现一个完整的随机地图生成算法。
摘要由CSDN通过智能技术生成

参考:http://blog.csdn.net/sssogs/article/details/7658940

1.填充地图

2.挖空需要访问的所有点

3.设置起始点

4.开始访问

4.1获取当前点4个方向上的可访问且没有访问过的点

4.2随机选择其中一个点进行访问,并设置为当前访问点,将该点加入已访问列表,同时挖空2个点之间的所有点

4.3如果当前点各个方向上都没有可访问的点,那么从之前访问过的点里随机选取一个点作为当前访问点,并重复以上步骤

5.如果所有点都已被访问过,结束,随机地图完成


代码

--[[
随机迷宫地图生成类

--]]


local RandMazeMap = class("RandMazeMap")

RandMazeMap._instance = nil

RandMazeMap._tmx = nil
RandMazeMap._emptyId = nil
RandMazeMap._fullId = nil
RandMazeMap._mapSize = nil

RandMazeMap._curPos = nil
RandMazeMap._toVisit ={} -- 用于位置直接索引
RandMazeMap._toVisitList = {} -- 用于列表序号索引
RandMazeMap._visited = {} -- 用于索引记录已访问过的点的索引 主要是方便从已访问的里面取随机点用

function RandMazeMap.GetInstanc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值