`
mmdev
  • 浏览: 12915478 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【Objective-c算法】 A*自动寻路算法

 
阅读更多

A*算法适合在静态环境中寻路,也就是说周围的物体不会动态的移动。

需要2个表,分别保存待检测和已检测的格子:

openTable保存的就是当前格子四周的格子(最多为8个),只保存满足条件的格子,不能是障碍物 或者出屏幕了。


你可以这样来初始化它们:

openTable = [[NSMutableArray alloc] initWithCapacity:map.mapSize.width*map.mapSize.height];
closeTable = [[NSMutableArray alloc] initWithCapacity:map.mapSize.width*map.mapSize.height];

看看A*算法的核心代码:



看看 bestTilePoint 函数:


总之 bestTilePoint函数就是用来找到最合适的移动方向。


看看 是如何处理每一个格子的:


DEMO下载

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics