A星尋路算法 for cocos2dx-lua

jopen 9年前發布 | 24K 次閱讀 算法

A星尋路算法 for cocos2dx-lua

尋路的時候需要傳入開始坐標,目標坐標以及存放所有地塊格子的table。

1.關于地塊格子(block)的劃分方式

每個block為一個table

local block = {}

block.w = w --在整個地圖劃分中所處的行

block.h = h --在整個地圖劃分中所處的列

block.pos = pos --格子的中心點在地圖中的坐標       

block.couldCross = true --表示該格子是否是可以通過的

然后將block以鍵值string.format("%d_%d",block.w,block.h) 存入blocks中

2.關于路徑的緩存 為了提高效率,完成一次尋路后會把相關路徑信息緩存到aster.cachedPaths中,在地圖變化時需要手動調用astar.clear_cached_paths清除緩存信息

項目主頁:http://www.baiduhome.net/lib/view/home/1440557950325

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!