在实际应用中,很多游戏是木有自动打怪/捡物(类传奇)的,我们需要使用鼠标进行点击相应怪我或者物品进行攻击或捡取。那么在这种情况下,从距离角色最近的位置开始攻击或者捡取可就是非常有必要的咯!
知识点引入:
数学知识:已知坐标求距离
已知坐标A(X1,Y1)、B(X2,Y2),那么AB之间的距离有一个计算公式:
距离=sqr((X1-X2)^2+(Y1-Y2)^2)
即:距离等于两个坐标的横坐标之差的平方,加上纵坐标之差的平方,两个平方相加,再取它们的平方根。
|
算法知识:冒泡排序介绍:
冒泡排序(Bubble Sort),这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,像鱼吐泡泡一样。同样,也可以让越大的元素沉到数列底部。
|
算法原理:
冒泡排序算法的运作如下:(从后往前)
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
|
思路解析:
1.获取到人物的坐标,以及各个物品的坐标,存入数组;
2.计算人物距离各个物品的坐标距离,存入数组;
3.通过各个坐标距离的比较,从而获取到最小距离(距离人物最近的物品)以及最大距离(距离人物最远的物品),输出相对应的物品坐标。
以下为干货: ] 说了那么多,其实上面说的都是废话。在大漠中本身就提供了这个函数! 图中框起来的两函数都是有计算排除作用的。 其中:FindNearestPos 解析返回的是最近的一个嘴巴 其中:SortPosDistance 解析返回的是按坐标的距离进行从小到大的排序 远航模块中的例子
|