同城头条  >  技术分享  >  [游戏安全] 十分钟告诉你fps方框透视原理,画图详解,以csgo单机版为例
[游戏安全] 十分钟告诉你fps方框透视原理,画图详解,以csgo单机版为例
2021年12月14日 08:16   浏览:0   来源:小报道
FPS类游戏方框透视的原理,就是根据敌人在游戏世界中的位置,算出其在屏幕上对应的位置,绘制的方式就不谈了,可以用D3D HOOK,也可以gdi绘制。
接下来,我讲一讲计算的原理,只要你上过初中学过数学,就一定能看的懂。
我们需要的数据有以下几个
1.自己的x,y,z坐标
2.敌人的x,y,z坐标
3.自己的鼠标角度
这些数据都可以用ce搜索到,不会的可以去看看ce的教程



我们先不算z轴 找x,y平面的对应关系,如图所示,这是一个上帝视角的图,也就是从天空中向下看,假设原点为我们自己,我们与敌人有一条连线,我们鼠标的方向有一条射线。
这些都是在游戏中可以找出的数据,这其中有一个很关键的角α,需要我们求出来。因为我们只要知道了α角,就可以通过鼠标与x轴的角度-α角求出β角。为什么要求β呢?


我们画两条辅助线
试想一下怎么才能找到敌人位置与屏幕的对应关系 ,没错,就是a边,
比如我们游戏的分辨率是1366*768,那横着的以我们准星为分界的一般就是683
比如我们屏幕就是一个分界线,屏幕是离我们最近的一个面,这个面上的长度是683,那a的长度对应到屏幕上是多少 ,肯定是和b的长度成反比的,
b的长度越长,这个距离肯定也就越短,所以我们得到 屏幕上对应的敌人位置应该是 683+a/b*683(敌人在我们鼠标射线的右边),反之就是减去,y轴也是同理的。


现在可能我不说很多人也会了, 我们的x坐标减去敌人的x坐标得到x边,我们的y坐标减去敌人的y坐标得到y边,利用勾股定理,求得c边。
可知a=sinβ*c    b=cosβ*c,如果敌人在我们的左边也是同理,只不过β会变成负的,这样导致sinβ变成了负数,但是cosβ还是正的 ,也就是说a/b变成了负数,那岂不是正好,加了负数就等于减去了它,敌人在我们屏幕上对应的位置也就到了左边。
当然事情还没这么简单,这只是其中两种情况,


如果是这样呢,α角-鼠标角度已经大于180°了 ,这时候 我们用360-α+鼠标与x轴角度就可以了。

反之同理 如果鼠标与x轴角度-α角大于180°,那就用360-鼠标与x轴角度+α就可以了。

忘记说了求α的角度问题,这个根据x,与y来判断,我相信你们也都会求,我将我的源码放在下面 ,只解释一部分,其他的都是同理



还是以原点为例,当我们的x-敌人的x小于0,y相等的时候, 就是这种情况 ,这个时候我们与敌人的连线与x轴的夹角(α)是为0的,其他三种同理,不理解的可以自己画图看一下


                       if (x < 0 && y == 0)
                        {
                                xAngle = 0;

                        }
                        else if (x == 0 && y < 0)
                        {
                                xAngle = 90;
                        }

                        else if (x > 0 && y == 0)
                        {
                                xAngle = 180;
                        }

                        else if (x == 0 && y > 0)
                        {
                                xAngle = 270;
                        }

       
这种情况,我们的x,y都小于敌人,我们用反正切直接算出角度(不懂反正切的可以去百度),我简单的说一下 ,就是知道两条直角边用来求角的,这里得出的是弧度制,转为角度制,所以/pi*180(/pi表示占了pi的几分之几,再成180转为对应的角度)。
                        else if (x < 0 && y < 0)
                        {
                                xAngle = atan2(abs(y), abs(x)) * 180 / M_PI;
                        }
                       

                        else if (x > 0 && y < 0)
                        {
                                xAngle = 90 + atan2(abs(x), abs(y)) * 180 / M_PI;
                        }
                       
                        else if (x > 0 && y > 0)
                        {
                                xAngle = 180 + atan2(abs(y), abs(x)) * 180 / M_PI;
                        }
                       
                        else if (x < 0 && y > 0)
                        {
                                xAngle = 270 + atan2(abs(x), abs(y)) * 180 / M_PI;
                        }
以上的步骤再平面我们的方框就能对应上敌人了 但是游戏是三维世界 ,还需要z轴也对应上,毕竟游戏地图会使我们和敌人有高度差。




如图所示,还是以原点为例,但是现在我们相当于站在侧面看了,而不是在天空看,所以此时x轴就是我们刚才求的c边了,这需要一点空间想象能力 ,我画图能力有限,画不出立体的图片。
这时候 我们用我们鼠标的y角度,也就相当于对于整个屏幕的角度(这个角度就是你鼠标在游戏中上下就会变的角度,在我测试的csgo中,上是负数,下是整数,上为0-(-90),下为0-90)
来求h边,在用h边减去x就得到了敌人离我们鼠标准星的距离,还是老规矩,转到屏幕上,
举一反三一下 ,应该就是 384-(h-z)/c*384。  h=tan(θ)*c,当然这要分敌人在我们上面和下面两种情况讨论, 我就不细讲了,只要你符号搞对了都没问题,方法有很多种。



虽然还有些不准确但是可以设置一些比例进行微调,如果要继续优化,还需要找出是队友还是敌人的标记,还有是否死亡的标记,我这里只讲关键原理 ,就不谈了。


利用ce找到的一些数据,也可以用敌人血量判断是否死亡。
相信看完我说的这些,原理你们应该都明白了,赶紧动自己手写一个吧!


头条号
小报道
介绍
报道大小信息,宣传正能量!
推荐头条
Keywords" 仪陇网、仪陇生活网、专注仪陇本地信息真实传递_仪陇网d-sj.cn/学法减分好助理答题神器一扫就出答案、学法减分好助理扫一扫知道答案app、学法减分好助理考试题库、学法减分好助理20道题模拟考试、学法减分好助理可以减多少分?、学法减分好助理拍照搜题 秒出答案免费、学法减分好助理拍照搜题、学法减分好助理拍照搜题 秒出答案、学法减分好助理可以申请几次?、学法减分好助理题库最新版、仪陇生活网、仪陇生活网招聘、仪陇招聘驾驶员、仪陇新政有哪些厂还在招工、仪陇人才网、仪陇在线、仪陇新政最新急招聘58同城、仪陇新政哪有做兼职的、仪陇县招聘信息最新招聘仪陇生活网招聘、仪陇招聘网最新招聘信息、仪陇生活网二手房、仪陇生活网最新消息、仪陇生活网门面转让、仪陇生活网住房出租最新消息、仪陇生活网发布了信息如何取消、四川仪陇生活网、仪陇人才招聘信息生活网、仪陇生活网、仪陇生活网招聘、仪陇招聘网最新招聘信息、仪陇生活网最新消息、仪陇生活网门面转让、仪陇生活网二手房、仪陇生活网住房出租最新消息、仪陇生活网最新招聘暑假工、四川仪陇生活网、仪陇手机生活网、仪陇招聘网最新招聘信息、仪陇招聘驾驶员、仪陇县租房信息、仪陇新政招聘网最新招聘、仪陇找工作、仪陇最新招聘、仪陇生活网招聘、仪陇人才网、仪陇招聘信息招聘仪陇招聘信息信息、仪陇招聘c1驾照、仪陇房价、四川仪陇县房价多少钱一平方米、仪陇县房价现在是多少、仪陇房产网、仪陇新政房价多少钱一平米、仪陇新政房价、仪陇房价为什么这么高、仪陇房价多少钱一平方、仪陇房价如何走、仪陇房价为什么这么高2019、仪陇新闻网、仪陇新闻网头条、仪陇新闻最新消息今天、仪陇新闻网今日新闻、仪陇新闻直播、仪陇新闻网丁强、仪陇新闻网直播视频、仪陇新闻视频、仪陇新闻综合频道直播、仪陇广告公司、仪陇广告语、仪陇金山广告、仪陇驾校、仪陇驾校报名费用、仪陇驾校C1多少费用、仪陇驾校88队哪个教练好、仪陇驾校在什么地方、仪陇驾校科目一考试、仪陇驾校学费、仪陇驾校科一早上笫一堂几点、仪陇驾校蒲、仪陇坤安驾校、仪陇工厂招聘、仪陇工厂有拿回家干的活吗?、仪陇新政工厂招聘、仪陇新政招聘信息工厂、仪陇家电维修、仪陇家电回收、仪陇家电清洗、仪陇电脑维修哪家好、仪陇电脑城在哪里、仪陇电脑销售在什么地方、仪陇电脑回收、仪陇电脑培训、仪陇电脑商家、壹家电脑维修、仪陇二手家具市场、仪陇家具城、仪陇家具厂、仪陇家具维修师傅、仪陇家具定制、仪陇家具厂网上程、仪陇家具市场、仪陇家具城在哪里、仪陇二手家具回收、南充仪陇二手家具市场、四川仪陇房产信息网、仪陇马鞍房价、广西桂林房价、仪陇一中录取分数线2021、仪陇翰林锦府、仪陇金城二手房的房价、仪陇房价为什么这么高、仪陇新政租房最新消息、仪陇县金城镇房价下跌、仪陇县招聘信息最新招聘、仪陇房产网、仪陇河西工业区招聘、仪陇门面出租、四川仪陇黑老大周超、仪陇县金城镇二手房最新消息、仪陇新政本地招聘启事、四川仪陇新镇最新招聘、仪陇县找工作生活网、如何自学电脑维修、娄星区关家垴附近电脑维修、恒达行家维修培训怎么样、珠海唐家电脑维修、台式机维修去哪家好、笔记本维修哪家好、仪陇电脑维修哪家好、电脑维修公司哪家好、秀洲区电脑维修哪家好、仪陇新政本地招聘启事、仪陇县金城镇二手房最新消息、仪陇招聘网最新招聘信息、仪陇新政有哪些厂还在招工、仪陇县河西工业区招工、南部人才网、四川仪陇黑老大周超、仪陇新政哪有做兼职的、四川仪陇新镇最新招聘、长津湖电影、长津湖电影时间多长、长津湖电影完整版免费观看、长津湖电影观后感、长津湖电影完整版免费观看HD、长津湖电影完整版免费观看2021、长津湖电影完整版免费观看网站、长津湖电影观后感500字、长津湖电影票多少钱一张、长津湖电影票购买、长津湖成影史历史片票房冠军、长津湖电影完整版免费观看、长津湖3个冰雕连仅2人生还、长津湖战役、长津湖2021免费完整版观看、长津湖票房破30亿、长津湖作文、长津湖观后感、长津湖手抄报、长津湖观后感10篇、刷手机下拉示选上海百首网络、刷手机下拉述约上海百首网络、刷手机下拉安选上海百首网络、刷手机下拉尚选上海百首网络、刷手机下拉安信上海百首网络、苹果手机下拉菜单、华为手机不能下拉、手机下拉功能在哪里设置、手机下拉设置在哪里设置、手机不能下拉通知栏、仪陇天气、仪陇房产网新楼盘、仪陇县楼盘房价最新消息、仪陇县、仪陇天气预报15天、仪陇县房价、仪陇招聘网最新招聘信息、仪陇属于四川哪个市、仪陇县金城镇、仪陇网、仪陇房产网新楼盘、仪陇县招聘网、仪陇网上在逃人员、仪陇网吧多久开业、仪陇网约车平台、仪陇网红地、仪陇网吧、仪陇网吧开门了吗、仪陇网络电视台、仪陇生活网、仪陇生活网招聘、仪陇生活网最新招聘信息、仪陇生活网最新消息、仪陇生活网门面转让、仪陇生活网二手房、仪陇生活网发布了信息如何取消、四川仪陇生活网、仪陇手机生活网、仪陇人才招聘信息生活网、仪陇丁家大院、仪陇森家环保、仪陇县房价、仪陇二手房、仪陇二手房出售信息、仪陇房产查询系统、仪陇房子出售、仪陇房子能不能买、仪陇房子贵、仪陇房子还会拆迁、仪陇房子出租、仪陇首座房子好不好、仪陇房产网新楼盘、仪陇房产网、仪陇房产备案查询、仪陇房产信息网、仪陇房产查询系统、仪陇房产管理局官网、仪陇房产交易网、仪陇房产价格、仪陇房产中介、仪陇房产局、仪陇河西工业区有些什么厂、仪陇县河西工业区招工、仪陇河西工业园2020招聘、仪陇河西电子厂招聘信息、仪陇河西招聘驾驶员、仪陇河西大华宝公学、仪陇河西工业区有哪些制衣厂、仪陇河西工业园、仪陇河西工业区电子厂、仪陇河西工业区灯泡厂、薇仪陇之家、薇仪陇生活网新政房价、仪陇新政房价、仪陇新政二手房出售、仪陇新政楼盘、仪陇在线、仪陇生活网、仪陇生活网是大家了解仪陇的资讯窗口,同时也是仪陇人的网上家园,为大家提供免费查询发布仪陇便民生活信息,是仪陇地区综合信息门户网站!

Copyright ©2021 仪陇家园同城网--版权所有   蜀ICP备2022002889号-1