国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

手機斜角地圖中A*算法的實用化

2019-11-18 15:03:04
字體:
來源:轉載
供稿:網友

手機斜角地圖中A*算法的實用化

在這里關于A*算法的基本實現我不多說了,這類文章很多的,大家可以去參考。我目前還是學生主專業是J2EE方向,假如說得不對,還請各位多多包涵。
  A*算法在斜角地圖中的實現要害在于確定每次移動的基準點,你可以把基準點定得比較細也可以比較粗。大家可以比較下面兩幅圖。
手機斜角地圖中A*算法的實用化(圖一)

手機斜角地圖中A*算法的實用化(圖二)

在我的實現中,我選擇了后者,即把基準點定的比較粗,定在每個TILE的中心。原因有兩個: 一,明顯計算簡單,速度會快很多。 二,確定障礙物也比較方便。  前一種方法往往是在對尋路精度要求比較高的情況下使用。 當然兩者混合使用也是非常好的,即在大路徑上采用粗的尋路點,到了一個目標點TILE上再采用精細的尋路點進行計算。 我目前采用了這樣的方法:

手機斜角地圖中A*算法的實用化(圖三)
如上圖所示,尋路的起點和終點并非總是在TILE中心的,假如要使用粗精度的A*來尋路必須使得尋路點在中心上(目前手機鍵只支持8方向,尋路點在中心也是必須的)。  我們采用這樣的辦法先計算出A*要經過的每一個TILE,然后使起始點的位置到第二個TILE的中心位置進行修正移動(即不是直接斜方向移動,而是橫豎移動),這樣我們的尋路點便到中心了,中間過程便可以以一個個TILE為基準進行移動(圖中橘黃色的路徑),到倒數第二個TILE時再進行一次向目的點的修正移動。這樣便可以比較精確地進行移動了。  不要在第一個TILE中即進行修正移動,因為有可能會有這種情況,中心在人的下面,而人的A*算法的趨勢是向上移動,會造成人先下移動再向上移動,非常傻。
一些看法:
1 手機中不一定要使用Binary Heap A*算法
關于Binary Heap A*算法,大家有愛好可以看看這個http://www.policyalmanac.org/games/binaryHeaps.htm
它主要是在對于OPEN表進行了優化,但我覺得在手機游戲上不一定要使用,拿我的實現做例子,在180*208的屏幕上,我貼了40個左右的TILE。大家知道一般怪物都是有視力的,能看到1個屏多一點已經很不錯了,這樣的話OPEN中節點達到40個已經算是很多了(幾乎不可能),我們采用二分插入排序完全可以滿足性能的要求,無需使用Binary Heap了。(這也是我使用粗精度尋路方法的原因之一:) )



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 唐海县| 白山市| 县级市| 腾冲县| 牡丹江市| 闽侯县| 五莲县| 漾濞| 永清县| 德安县| 贺州市| 临武县| 东乌珠穆沁旗| 弋阳县| 诏安县| 阜宁县| 临猗县| 桃园市| 永丰县| 堆龙德庆县| 马关县| 新乡市| 彭水| 襄垣县| 临江市| 松阳县| 巴东县| 炉霍县| 乐都县| 武宁县| 阜城县| 镇坪县| 正阳县| 无为县| 扎赉特旗| 江津市| 定结县| 临泉县| 教育| 临清市| 吉木萨尔县|