日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocos2d-x游戏实例(7)-A星算法(3)

發布時間:2024/4/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2d-x游戏实例(7)-A星算法(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man

繼續上一篇的內容,我們再看我們上一篇進行的部分


然后我們獲得父節點索引,即close列表中的最后一個元素,然后檢測該元素,是否離目標位置只差一個點的距離,如果是的話我們就獲得了路徑,我們首先看如果沒到達目標位置時,我們進行A星搜索的函數


在這里,我們分別找目前位置的地圖索引值,上下左右位置,首先判斷他是否超出了地圖的位置,然后檢測該點是否是地圖中不能去的位置。函數如下


如果沒有到達目標位置,就檢測該點是否是地圖碰撞,如果是碰撞返回false,否則都是true,那么有人會問,我們為什么不檢測目標節點是不是碰撞點呢,因為我們會在搜索前就檢測這個問題。然后繼續回到starseach函數中。后面檢測該點是否在open列表中,如果不在open列表中,則把他加入到open列表中,如果該點已在這個open列表中但是確是個更好的解(f值更小)checkopen函數如下:


我們可以看到遍歷open列表,如果不存在則返回true,否則返回false,如果這是已經在open列表中并且是個更優解,我們在這里就完成我們的替換

之后檢測是否在close列表中就更為簡單,遍歷close列表,如果則返回false,否則返回true,代碼如下:


如有錯誤之處,希望大家多多指正

下一篇繼續A星算法游戲實例

總結

以上是生活随笔為你收集整理的cocos2d-x游戏实例(7)-A星算法(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。