【CSON原創】A*算法+HTML5實現游戲尋路


功能描述:

       結合A*算法和HTML5完成的一個尋路demo。

       鼠標點擊地圖任意位置,飛鳥會尋找最短路程到達該位置。

效果預覽:

 

代碼分析

  具體的A*算法尋路邏輯請看這里推薦的一篇很好的文章,我就不再詳述:

  英文版:http://www.policyalmanac.org/games/aStarTutorial.htm

  中文版:http://blog.vckbase.com/panic/archive/2005/03/20/3778.html

      另外具體說說里面提到過的“穿越拐角規則”的實現:

      所謂的“穿越拐角規則”,就是如下圖中所出現的情況:假設綠色是障礙物,當右邊的紅色格子想到達上面的黃色方格,並不允許直接由紅色方格跳到黃色方格,而需要經過藍色方格的情況:

  

  我的實現方法是判斷使用當前格子的x值和下一個格子的y值的格子或者使用當前格子y值和下一個格子x值的格子是障礙物,則在該次尋路過程中忽略該格子。

  代碼:

                        if (isWall(pointsArr[i][point.x], this.wallValueArr) || isWall(pointsArr[point.y][j], this.wallValueArr)) {                             
 //拐角規則,如果檢測某點四周的點時,該點和四周上某點之間隔着一個障礙物,則忽略該點,暫不添加到開始列表
                continue;
                        }

  

  另外,demo中的效果使用了自己開發的HTML5游戲框架cnGameJS,關於cnGameJs詳細請看這里:《HTML5游戲框架cnGameJS開發實錄》

 

  完整demo下載:點擊這里

  

  歡迎轉載,請標明出處:http://www.cnblogs.com/Cson/archive/2012/02/21/2362369.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM