游戏辅助制作 用按键精灵如何确定人物朝向
1、 按键学院实战班的07老师整理了自动寻路的三要素,给大家分享:
自动寻路一般需要确定三个要素:
确定路线
确定朝向
确定位置
确定了人物位置和物品位置,再确定了人物的朝向,与目标路线。将人物转向目标就可以用脚本实现自动寻路的功能。
2、剑灵模式的地图的寻路:游戏画面右上角有小地图,地图中灰白色箭头代表人物。
三角函数知识:
斜率:已知A、B点坐标,求直线AB的斜率。
斜率公式k=(y1-y2)/(x1-x2),即两个坐标纵坐标之差,除以两个坐标横坐标之差。
正切函数:正切函数是直角三角形中,对边与邻边的比值。
在上图中,即 tanα=b/a=(y2-y1)/(x2-x1)。在按键精灵中为Tan函数。
通过公式对比,我们可以知道,直线AB的斜率,即角α的正切值
角度:已知角α的正切值,我们可以通过反三角函数公式,来计算这个角度的值。
α=arctan(k)。在按键精灵中为Atn函数。
反三角函数:即相对应的正弦、余弦、正切、余切为x的角。
3、如何实现箭头角度计算:
从上面的三角函数知识拓展中,我们知道,要计算一个角度,可以通过计算该角度的正切值,再通过反三角函数来求这个角度。
那么,在按键精灵的代码中如何实现呢?
思路:
1. 通过找图找色命令,找到箭头顶部A的坐标,以及箭头底部中间B的坐标。
2. 构建直角三角形。确定箭头的指向的角度α。
3. 通过斜率/正切函数,来计算角度α的正切值。
4. 通过反三角函数,来得出角α的角度值。
4、代码实现:
‘在剑灵右上角的小地图里找色/找图,箭头坐标存储在(x1,y1),箭尾坐标存储在(x2,y2)
FindColor1200,0,1920,300,"箭头颜色",x1,y1
If x1 > 0 And y1> 0 Then
End If
FindColor1200,0,1920,300,"箭尾颜色",x2,y2
If x1 > 0 And y1> 0 Then
End If
'计算斜率/正切值
斜率 = (y1 - y2) / (x1 -x2)
'计算角度
角度 = Atn(斜率)
当然,自动寻路并不是单一的方式,不同游戏的地图不同,寻路的方式不同。但是运用到的数学知识和思路是共同的。当然,有些特定的地图有更便捷的方式,例如最终幻想14的地图。下一期的院刊,再跟大家分享另一些不同的地图的寻路方式~~