• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 14
发新话题 回复该主题

[技术交流] 【院刊】-【201408期】计算距离自己最近的怪物/包裹/金矿坐标 [复制链接]

1#
计算距离自己最近的怪物/包裹/金矿坐标
作者:cady8116 编辑:果果。。

知识点引入:


数学知识:已知坐标求距离

已知坐标A(X1,Y1)、B(X2,Y2),那么AB之间的距离有一个计算公式:

距离=sqr((X1-X2)^2+(Y1-Y2)^2)

即:距离等于两个坐标的横坐标之差的平方,加上纵坐标之差的平方,两个平方相加,再取它们的平方根。



算法知识:冒泡排序

介绍:

冒泡排序(Bubble Sort),这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,像鱼吐泡泡一样。同样,也可以让越大的元素沉到数列底部。

算法原理:


冒泡排序算法的运作如下:(从后往前)

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。



思路解析:


1.获取到人物的坐标,以及各个物品的坐标,存入数组;
2.计算人物距离各个物品的坐标距离,存入数组;
3.通过各个坐标距离的比较,从而获取到最小距离(距离人物最近的物品)以及最大距离(距离人物最远的物品),输出相对应的物品坐标。



大神代码段:

  1. //注:coordinate为物品坐标,range为距离,Arr为物品坐标的数组,Ub为物品坐标的最大下界

  2. x = 300:y = 330'人物的坐标
  3. coordinate = "200,300|10,20|60,800|500,321|456,789|421,6|300,320|320,290"'物品(怪物)的坐标

  4. Arr = split(coordinate, "|")
  5. Ub = UBound(Arr)

  6. 'range(Ub)用来存储每个物品离人物的距离, xx(Ub)用来存储每个物品的X坐标, yy(Ub)用来存储每个物品的Y坐标
  7. Redim range(Ub), xx(Ub), yy(Ub)

  8. '计算所有的物品坐标,离人物的距离,存在range数组里
  9. For i = 0 To Ub
  10. x1 = split(Arr(i), ",")(0) : y1 = split(Arr(i), ",")(1)
  11. xx(i) = x1 : yy(i) = y1
  12. range(i) = sqr((x1 - x) ^ 2 + (y1 - y) ^ 2)
  13. Next

  14. '通过冒泡排序,将人物离每个物品的距离,按照从小到大的顺序排列,并根据距离的排序,相应的调整物品的X坐标和Y坐标在数组中的位置。
  15. For m = 0 To Ub
  16. For n = m + 1 To Ub
  17. If range(m) > range(n) Then
  18. k = range(m):range(m) = range(n):range(n) = k
  19. k = xx(m):xx(m) = xx(n):xx(n) = k
  20. k = yy(m):yy(m) = yy(n):y(n) = k
  21. End If
  22. Next
  23. Next

  24. TracePrint "距离人物最近的坐标为:"&xx(0) & "," & yy(0)
  25. TracePrint "距离人物最远的坐标为:" & xx(Ub) & "," & yy(Ub)
复制代码


最后知识拓展:


各位大大,是不是说,都已经知道了人物坐标和物品坐标了,那还计算什么!
乖孩纸们,你们忘记找图代码啦?
在游戏中应用的时候,通过找图来获取到人物(或者其他玩意)的坐标,再通过找图来获取到物品(或者其他不明物品)的坐标,不就可以套用上面的思路啦~~萌萌哒~


相关知识拓展:
【院刊】-【201408期】游戏扫拍卖行(排序算法之冒泡法)

本文由按键学院提供技术支持
按键学院实战班(即将入驻最终幻想)火热招生
按键学院基础视频抢先观看



    已有6评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/9/9 8:53:38 执行 审核帖子 操作
    <strong>按键学院交流群(开放中):376122403<br />
    <br />
    <a href="http://bbs.anjian.com/thread-548439-1-1.html" target="_blank">按键学院开班<strong> <font color="Red">【安卓导师】+【实战导师】招聘导师</font></strong>啦~~<font color="Red"><strong>待遇特别好,有钱,就是任性。</strong> </font></a><br />
    <br />
    <br />
    <a href="http://bbs.anjian.com/t
    2#

    098008098

    3#

    學習學習!

    4#


    5#

    是的

    6#

    sadadassdsdasda

    7#

    sdafasfa

    8#

    cfgg

    9#

    不看看对不起世界学习学习

    10#

    感觉很实用的样子

    11#


    12#

    盛大的发顺丰

    13#


    14#

    1111111111

    15#

    时代替他,

    16#

    好东西

    17#

    分开旅行我们

    18#

    11111111

    19#

    11111111111

    20#

    冒泡

    发新话题 回复该主题