概述
这是之前写的带地形惩罚的A*寻路算法:http://blog.csdn.net/clb929/article/details/54745742
前言
在实际开发过程中,发现碰撞计算始终是无法回避的问题,于是就有了这个带地形惩罚和碰撞半径的A*寻路算法
在现实生活中,一个人和一头大象的体积是不同的,能够让一个人通过的路未必能让一头大象通过,同样的,在A*寻路算法中,不同碰撞半径的2个物体的路径选择应该也是不同的。
碰撞半径是什么?在3D游戏中,计算2个物体是否碰撞之前,2个物体都会赋予一个属性--碰撞体积。而2D游戏中,这个计算可以更简化,只要考虑双方的占地面积。现实中的物体是各种各样的,有长条形的、圆形的、方形的、椭圆形的、不规则的,如果用2个物体真实的形状去计算碰撞,那么光是几百个NPC和几百个怪物的碰撞计算就会让你的服务器不堪重负,所以对碰撞体积做一些简化是非常有必要的,球形或圆形是比较好的选择,这种简化连物体的朝向都不用考虑了。
简介
AStarPathFinding类增加了IntersectRadius属性,碰撞半径,小于等于0时无视地形寻路
AStarPathFinding类增加了IsValidMapNode方法,检查指定节点是否是一个可以到达的节点
演示
碰撞半径为1的寻路
碰撞半径为2的寻路
碰撞半径为0的寻路
源代码下载
http://pan.baidu.com/s/1nuY4Qhj
更新日志
2017-05-13
如果碰撞半径小于等于0,不检查是否跨过拐角
最后
以上就是威武外套为你收集整理的带地形惩罚和碰撞半径的A*寻路算法的全部内容,希望文章能够帮你解决带地形惩罚和碰撞半径的A*寻路算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复