【游戏分析】FPS游戏狩猎百发百中

某某游戏狩猎玩法及其类似于FPS游戏

即3D射击

所以同样拥有 自动瞄准功能和爆头功能

想达到百发百中我们就要精准的计算出3D朝向值

读取人物坐标

遍历怪物,读取怪物坐标比较简单,不过多陈诉

朝向自然而然一定是我们和敌人的坐标计算出来的

那么怎么计算的呢?

我们抓取射击封包(3个封包 都需要朝向值)

发现  封包里面  有  3个朝向值  x,y,z

都是浮点型的   都是-1 到1 的值

3个朝向值表示3D朝向的话并且都是-1到1

那么这3个值不可能是X,Y,Z的3方向角度

只有两种可能(当然我们也可以追踪封包参数来源 也会发现同样的算法)

第一种 角度-π 到π  换算成 -1 到1 经过多次 测试  发现不是

第二种 以自己为球心  画一个半径为1的球   我们和怪物连线和球的交点 即为这3个朝向值

这是由于2D游戏多采用半径1圆交点的算法  我们才会想到

当然直接理解3D的过于抽象

我们可以先看看  以往2D游戏惯用的  1半径的圆交点朝向算法

3D游戏不过是在这个基础上  增加Z坐标系    圆变成球而已

当然正常PFS游戏  一般朝向值是两个   即数学上常用 的   俯冲角和摇摆角 ,而旋转角对于  射击是不影响的,我们人物也不可能 头朝下脚朝天。

知道了这些 计算出3个朝向值直接填入封包即可自动瞄准,百发百中了

首先 距离=sqrt((X人物-X怪物)*(X人物-X怪物)+(Y人物-Y怪物)*(Y人物-Y怪物)+(Z人物-Z怪物)*(Z人物-Z怪物))

然后通过相似三角形计算出交点的  3个坐标

1/距离=X朝向/(X怪物-X人物)

X朝向=(X怪物-X人物)/距离

Y朝向=(Y怪物-Y人物)/距离

Z朝向=(Z怪物-Z人物)/距离

ps: 封包中和逆向的算法中发现  Z值填写的是  Z朝向/2   为了起到简单加密?不得而知

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值