寻路 A星
--寻路
local director = cc.Director:getInstance() --查找方向 self.m_allItems = {} for i=1,MAX_ROW_NUM do
--从(1, 1)找向(7, 7) self:_AStar(cc.p(1,cc.p(7,7))
function TestLayer:_AStar(from,to) --记录行走的路径 --将目前格子的周围相邻的格子压栈 for _,point in ipairs(SEARCH_POS) do local x = point.x + p.x local y = point.y + p.y if x > 0 and x <= MAX_COL_NUM and y > 0 and y <= MAX_ROW_NUM then --格子有效范围内 local pp = clone(searchMap[p.x*MAX_ROW_NUM + p.y]) table.insert(pp,cc.p(x,y)) if x == to.x and y == to.y then --找到了 for _,point in pairs(pp) do -- print("x,y: ",point.x,point.y) end return elseif not self.m_allItems[x][y]:_getIsMask() then --格子未寻过 self.m_allItems[x][y]:_setIsMask(true)--标记格子寻路过 table.insert(queue,y)) searchMap[x*MAX_ROW_NUM + y] = pp end end end until false end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |