【CSON原創(chuàng)】A*算法+HTML5實現(xiàn)游戲?qū)ぢ?/span>
功能描述:
結(jié)合A*算法和HTML5完成的一個尋路demo。
鼠標(biāo)點擊地圖任意位置,飛鳥會尋找最短路程到達該位置。
效果預(yù)覽:
代碼分析:
具體的A*算法尋路邏輯請看這里推薦的一篇很好的文章,我就不再詳述:
英文版:http://www.policyalmanac.org/games/aStarTutorial.htm
中文版:http://blog.vckbase.com/panic/archive/2005/03/20/3778.html
另外具體說說里面提到過的“穿越拐角規(guī)則”的實現(xiàn):
所謂的“穿越拐角規(guī)則”,就是如下圖中所出現(xiàn)的情況:假設(shè)綠色是障礙物,當(dāng)右邊的紅色格子想到達上面的黃色方格,并不允許直接由紅色方格跳到黃色方格,而需要經(jīng)過藍色方格的情況:

我的實現(xiàn)方法是判斷使用當(dāng)前格子的x值和下一個格子的y值的格子或者使用當(dāng)前格子y值和下一個格子x值的格子是障礙物,則在該次尋路過程中忽略該格子。
代碼:
if (isWall(pointsArr[i][point.x], this.wallValueArr) || isWall(pointsArr[point.y][j], this.wallValueArr)) {
//拐角規(guī)則,如果檢測某點四周的點時,該點和四周上某點之間隔著一個障礙物,則忽略該點,暫不添加到開始列表
continue;
}
另外,demo中的效果使用了自己開發(fā)的HTML5游戲框架cnGameJS,關(guān)于cnGameJs詳細請看這里:《HTML5游戲框架cnGameJS開發(fā)實錄》
完整demo下載:點擊這里
歡迎轉(zhuǎn)載,請標(biāo)明出處:http://www.rzrgm.cn/Cson/archive/2012/02/21/2362369.html
功能描述:
結(jié)合A*算法和HTML5完成的一個尋路demo。
鼠標(biāo)點擊地圖任意位置,飛鳥會尋找最短路程到達該位置。
浙公網(wǎng)安備 33010602011771號