我是靠谱客的博主 威武外套,最近开发中收集的这篇文章主要介绍带地形惩罚和碰撞半径的A*寻路算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是之前写的带地形惩罚的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*寻路算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部