首页
诗词
字典
板报
句子
名言
友答
励志
学校
网站地图
移动开发
移动开发
Android
Iphone
Windows Mobile
Symbian
BlackBerry
QT开发
Brew
MeeGo
移动平台
移动软件开发
电信IT应用开发
移动应用
当前位置:
首页
>
教程频道
>
移动开发
>
移动开发
>
【Objective-c算法】 A*自动寻道算法
2012-06-20
【Objective-c算法】 A*自动寻路算法A*算法适合在静态环境中寻路,也就是说周围的物体不会动态的移动。需要2个
【Objective-c算法】 A*自动寻路算法
A*算法适合在静态环境中寻路,也就是说周围的物体不会动态的移动。
需要2个表,分别保存待检测和已检测的格子:
- (BOOL)nextTile:(TilePoint *)curr X:(NSInteger)x Y:(NSInteger)y{TilePoint *next = [[TilePoint alloc] createTilePoint:x Y:y];next.parent = curr;//父亲当然是当前的格子if ([self isComparePoint:next And:endPoint]) {//先判断是否已到目的地[closeTable addObject:next];NSLog(@"find end point !!!!!!!\n");return YES;//到了目的地 就不需要在检测其它格子了。。} //这里检测的是格子是否为有效,包括:障碍物 出屏幕 已经检测过。。if ([self isInCloseTable:next] == NO && [self isEnableTile:next.x Y:next.y] == YES) {if ([self isInOpenTable:next] == NO) {//计算f、g值next.g = 14 + next.parent.g;next.f = next.g + [self calculateHPower:next];[openTable addObject:next];//然后就可以加入到openTable了}else {TilePoint *next2 = [self getFromOpenPath:next];if (next2.f > next.f) {next2.parent = curr;next2.g = 14 + next2.parent.g;next2.f = next2.g + [self calculateHPower:next2];}}}return NO;}
DEMO下载
查看更多
下一篇
本文网址:
https://www.reader8.net/jiaocheng/20120620/1406248.html
读书人精选
热点排行
资料读写乱码笔记
ContentProvider 示例
简略说说1月8号的中国首届cocoa移动开发
jQuery兑现的书本翻页动画效果源码
NFC一点点体验
iOS NSString的惯用用法
下上文周期应用
java 最好货色
【通译】(39)样式资源
scrollview怎么初始化定位滚动条的位置