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

软件版本: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» / 19
发新话题 回复该主题

[技术交流] 【院刊】-【201409期】自动寻路之——如何确定人物朝向(剑灵) [复制链接]

1#

自动寻路之——如何确定人物朝向(剑灵)


按键学院实战班前段时间沸沸扬扬的讲解着自动寻路教程。今天,咱院刊也来跟大家分享分享,实战班07老师的自动寻路思路之——确定人物朝向(箭头的方向角度)。

不少网络游戏已经支持自动寻路,玩家只需要设定终点后,游戏人物即可自动寻路,但是碰到某些未自带自动寻路功能的游戏,就呵呵呵了……

院刊今天跟大家分享两款热门游戏的人物朝向判定~~知道了人物朝向,再知道目标的朝向,不就知道怎么自动寻路了嘛~


按键学院实战班的07老师整理了自动寻路的三要素,给大家分享:

自动寻路一般需要确定三个要素:

确定路线

确定朝向

确定位置


确定了人物位置和物品位置,再确定了人物的朝向,与目标路线。将人物转向目标就可以用脚本实现自动寻路的功能。


剑灵模式的地图的寻路:游戏画面右上角有小地图,地图中灰白色箭头代表人物。

您所在的用户组无法下载或查看附件



三角函数知识:

您所在的用户组无法下载或查看附件



斜率:已知A、B点坐标,求直线AB的斜率。

斜率公式k=(y1-y2)/(x1-x2),即两个坐标纵坐标之差,除以两个坐标横坐标之差。


正切函数:正切函数是直角三角形中,对边与邻边的比值。
在上图中,即 tanα=b/a=(y2-y1)/(x2-x1)。在按键精灵中为Tan函数。
通过公式对比,我们可以知道,直线AB的斜率,即角α的正切值

角度:已知角α的正切值,我们可以通过反三角函数公式,来计算这个角度的值。
α=arctan(k)。在按键精灵中为Atn函数。
反三角函数:即相对应的正弦、余弦、正切、余切为x的角。


如何实现箭头角度计算:

从上面的三角函数知识拓展中,我们知道,要计算一个角度,可以通过计算该角度的正切值,再通过反三角函数来求这个角度。

那么,在按键精灵的代码中如何实现呢?



思路:
1. 通过找图找色命令,找到箭头顶部A的坐标,以及箭头底部中间B的坐标。
2. 构建直角三角形。确定箭头的指向的角度α。
3. 通过斜率/正切函数,来计算角度α的正切值。
4. 通过反三角函数,来得出角α的角度值。


代码实现:

  1. ‘在剑灵右上角的小地图里找色/找图,箭头坐标存储在(x1,y1),箭尾坐标存储在(x2,y2)
  2. FindColor1200,0,1920,300,"箭头颜色",x1,y1
  3. If x1 > 0 And y1> 0 Then
  4. End If
  5. FindColor1200,0,1920,300,"箭尾颜色",x2,y2
  6. If x1 > 0 And y1> 0 Then
  7. End If

  8. '计算斜率/正切值
  9. 斜率 = (y1 - y2) / (x1 -x2)

  10. '计算角度
  11. 角度 = Atn(斜率)
复制代码


当然,自动寻路并不是单一的方式,不同游戏的地图不同,寻路的方式不同。但是运用到的数学知识和思路是共同的。当然,有些特定的地图有更便捷的方式,例如最终幻想14的地图。下一期的院刊,再跟大家分享另一些不同的地图的寻路方式~~


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


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

    本主题由 超级版主 瑞祥幽冥狼 于 2023/10/6 17:33:28 执行 审核帖子 操作
    <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#

    1123333

    3#

    看看

    4#

    [code][/code]

    5#


    6#

    thx!!!!!!!

    7#

    哈哈哈哈

    8#

    看看 学习学习

    9#

    让24324234

    10#


    11#


    12#

    125426725

    13#

    顶顶顶顶顶顶顶顶

    14#

    学习中

    15#

    完了 数学函数 没学好!

    16#

    阿士大夫撒过水电费好

    17#

    需要角度函數,謝謝你

    18#

    学习学习

    19#

    学习了

    20#


    发新话题 回复该主题