[游戏解析] 十分钟告诉你fps方框透视原理,画图详解,以csgo单机版为例。
作者:精品资源网日期:2021-12-10浏览:1469分类:玩游戏
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 找到的一些数据,也可以用敌人血量判断是否死亡。
相信看完我说的这些,原理你们应该都明白了,赶紧动自己手写一个吧!
猜你还喜欢
- 06-02 [游戏福利] 喜 + 1,XBOX 免费领取《Tell Me Why》!
- 04-30 [网络技巧] 游戏卡顿?小心用错了家中WiFi频段
- 02-12 [游戏活动] 王者荣耀部分老用户领5Q币
- 01-30 [游戏活动] 微信摇心愿抽永久皮肤英雄道具
- 01-30 [游戏活动] 微信App Store充值享10%优惠
- 01-28 [游戏活动] Epic免费喜+1《机甲战魔》
- 01-22 [游戏活动] Epic免费喜+1《瑞利达》
- 01-15 [游戏活动] Epic免费喜+1《银河文明3》
- 01-12 [游戏合集] 经典怀旧武侠游戏大合集
- 01-04 [游戏活动] Epic喜+3《古墓丽影》三部曲
- 12-30 [游戏福利] 英雄联盟免费改名 白嫖50元
- 12-18 [游戏资讯] 梦境试炼千万别选这3个英雄!选完亏大了,只有傻子才选!
取消回复欢迎 你 发表评论:
-
- 最新文章
- 热门文章
- 热评文章
[动画] [我是格鲁特 I Am Groot 第一季] [全05集] [英语中字] [MKV] [1080P/2160P] [Disney+]
[电视剧] [非缘勿扰] [全36集] [国语中字] [MP4] [1080P] [58.6G]
[字体资源] 300+精选卡通少女风PC字体,每款均有预览图
[互联网] 百度账号已开放用户名修改
[热门事件] 新版QQ使用AI检测聊天内容
[网络技巧] 获取宽带光猫超级密码,获取后都能干些什么,教你一招!
[网络技巧] 破解电信华为光猫HS8145V超级密码(图文教程)
[美剧] [美国恐怖故事 / 美国怪谈 / American S01-10 ][全集打包][英语中字][MP4/MKV][720P/1080P][多版]
[网站教程] 利用宝塔实现百度自动推送
[游戏活动] CFHD登陆游戏领取10~110Q币
[韩剧] [九回时间旅行][Nine: 9 Times Time Travel][韩语中字][HD-MP4/720P/WEB-MKV/1080P] [H265][20集全]
[画师作品] wlop鬼刀2020年9月作品 4k8k+PSD+动态壁纸+绘画视频
[美剧] [猎鹰与冬兵 Falcon & Winter Soldier 第一季][全 06 集][英语中字][MP4/MKV][1080P/2160P]
[电影] 2021 动作《速度与激情九部合集》1080p.BD 中英双字
[教程]【会开车更要懂修车】汽车故障高级诊断-教程,14集全,价值2400元
[美剧] [英雄/超能英雄/Heroes 第1-5季] [全集] [英语中字] [BD-MP4] [1080P]
[杂志]《读者》杂志 1981-2021 全年合集
[美剧] [黑袍纠察队 The Boys 第一至三季+番外动画:劣迹][全 32 集][英语中字][MP4MKV][1080P]
[喜剧] [向阳照相馆 (2003)][全100集][中文字幕][MP4][720P]
[电影] [雷神 4:爱与雷霆][1080P 版 TC-MP4/4.63G][人工精翻 中英双字][2022 欧美动作奇幻大片]
[电影] 奇异博士1-2合集 Doctor.Strange.2016.2022 [mp4.mkv][多版本][英中双字]
[电影] [雷神 4:爱与雷霆][1080P 版 TC-MP4/4.63G][人工精翻 中英双字][2022 欧美动作奇幻大片]
[动画] [爱,死亡和机器人 Love, Death & Robots][1-3 季全集][英语中字][WEB-MKV/MP4][1080P][Netflix]
[美剧] [黑袍纠察队 The Boys 第一至三季+番外动画:劣迹][全 32 集][英语中字][MP4MKV][1080P]
[美剧] [猎鹰与冬兵 Falcon & Winter Soldier 第一季][全 06 集][英语中字][MP4/MKV][1080P/2160P]
[电影] 暗夜博士:莫比亚斯[简繁英字幕].Morbius.2022.UHD.BluRay.2160p.TrueHD.Atmos.7.1.x265.10bit.HDR-ALT 14.58GB
[电影] [猩球崛起] [共3部合集] [BD-MKV/56.71GB] [繁英字幕] [4K-2160P] [H265编码] [ALT小组压制作品]
[电影] [赤焰战场] [共2部合集] [BD-MKV/50.81GB] [简繁英字幕] [4K-2160P] [H265编码] [ALT小组压制作品]
[美剧] [鹰眼 Hawkeye 第一季] [全06集] [英语中字] [MP4/MKV] [720P/1080P]
[电影] 托尔:雷神 Thor.God.of.Thunder.2022.1080p.WEBRip.DD5.1.x264-NOGRP 4.33GB
- 最新评论
-
之前听说要出没想到这么快就有了Bernery 评论于:08-16 感谢123456 评论于:08-12 楼主万岁!祝楼主夜夜笙歌!三月 评论于:08-02 来看看[F]arrow[/F]dy 评论于:07-30 测了一下,BT链接还是正常的精品资源网 评论于:07-25 看看sjtimeshow 评论于:07-23 还下不了jensen 评论于:07-22 蜘蛛侠电影故事线有点乱看的我jensen 评论于:07-22 试试看吧jensen 评论于:07-22 优秀jensen 评论于:07-22
- 热门tag
暂无评论,来添加一个吧。