在前面的FPS游戏实现GDI透视中,我们通过三角函数,并配合坐标计算出了敌人的位置,该方法时比较笨的一种方式,但却很通用,基本上,只要是FPS类游戏,稍微修改一下代码中的基地址,就可以通用,本次我们将研究通过查找相机矩阵获得自身位置,上一篇文章中我已经讲解了关于各种坐标的找法。

> 本人坐标x = server.dll+4F2FEC + 288 - 8
> 本人坐标y = server.dll+4F2FEC + 288 - 4
> 本人坐标z = server.dll+4F2FEC + 288> 敌人x = server.dll+4F2FFC + 288 - 8
> 敌人y = server.dll+4F2FFC + 288 - 4
> 敌人z = server.dll+4F2FFC + 288 > 鼠标 x = engine.dll+61D254 + 4
> 鼠标 y = engine.dll+61D254
> 鼠标 x = client.dll+4C0300 + 4
> 鼠标 y = client.dll+4C0300> FOV = client.dll+5046F0
> FOV = client.dll+504628
> FOV = client.dll+5047B8
> FOV = client.dll+50489C
> FOV = engine.dll+3C1720> 算上我自己的人机数量:  server.dll+4EEFE8
> 算上我自己的人机数量: engine.dll+5D29BC> 不算我自己的人机数量:  server.dll+4EEFE0
> 不算我自己的人机数量: server.dll+588878自己血量偏移 = e4
> 自己血量: server.dll+54B6C8
> 自己血量: server.dll+54A82C
> 自己血量: server.dll+4F2FEC
> 敌人血量: server.dll + 4F2FFC + e4> 本人阵营: server.dll+4F2FEC + 1F4
> 敌人阵营: server.dll+4F2FFC + 1F4> 本人阵营: server.dll+54A82C + 1F4
> 本人阵营: server.dll+54B6C8 + 1F4

熟悉矩阵特点

通常情况下Dx9中会采用4*4的矩阵,这里我分别找了三款CS系列游戏的矩阵,并来分析一下他们的异同点。

1.找矩阵的方法就是不断移动自己相机位置,最好拿把狙击枪,然后开镜搜索变动的数值,移动身体搜索变动数值,或者是开镜移动身体搜索变动的数值,
这样配合来找,最终可以锁定在2000个数值左右,然后就可以开找,通常矩阵头晃动鼠标不会出现大于3的值,一般会在-0.x - 1.x 之间徘徊。

竖矩阵的第三个值,通常为0,就算乱晃,也会保持0的位置。

找到矩阵地址,当我们让人物只跳动时,矩阵呈现出来的效果如下。

上下晃动鼠标,矩阵呈现出来的效果如下。

左右晃动鼠标,矩阵呈现出来的效果如下。

开启关闭狙击镜,矩阵变化。

完全乱晃状态如下,4*4

矩阵,不只一个,如下是另一处,矩阵的数据。

另一处矩阵位置。

人物死后,矩阵被初始化。

不是矩阵的矩阵

第一种不是矩阵的情况,数据跳动幅度较乱,并且不是4*4在跳动,而是很多行。

第二种,混乱无序,不连贯,不是一个结构体,不是矩阵。

第三种,最常见的乱序,不是矩阵。

第四种,加密后的地址,晃动鼠标,不会发生任何变化。

代码中相机对应关系

相机X对应关系

相机Y对应关系

相机Z对应关系,我们只用到了前三行,后面的不用了。

4x4竖矩阵,是这样,只是前三行,最后跑到了下面。

如果是横矩阵会发生变化,如下。

所以上面的算法部分,需要稍微小改一下,即可完成横矩阵的透视效果。

FPS游戏:视角 4*4 矩阵的特点相关推荐

  1. c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...

    C语言-植物大战僵尸-刷僵尸call:fps游戏CS-方框透视(矩阵+传统)前言:大家好,我是向上先生,嘿嘿~最近在学习逆向.反汇编等等,首先我在非常感谢52pojie这个平台,差不多很多学习资源都是 ...

  2. 程序视角下的“连跳”操作(FPS游戏)

    前言: 本文转载自http://adrianb.io/2015/02/14/bunnyhop.html 作者Adrian Biagioli(Flafla2)是CMU的游戏引擎开发大佬 这篇技术分享解释 ...

  3. lolfps高但画面不流畅_全面解析:高刷新率真能提高FPS游戏技术?

    时隔多年再一次陪朋友座进网吧的时候,老实说我真的后悔了!这次网吧的游戏体验非常的糟糕,总感觉画面和动作并不流畅,经过几番探索之后我终于找到了原因,原来网吧电竞区的显示器刷新率居然只有60Hz!这对于游 ...

  4. 百万局对战教AI做人,技术解读FPS游戏中AI如何拟人化

    作者:johnxuan,腾讯 TEG 应用研究员 FPS 游戏 AI 是腾讯 AI Lab 的一大重要研究方向,其拟人化 AI 也在 FPS 手游<穿越火线-枪战王者(CFM)>春节期间上 ...

  5. Unity3D引擎入门搭建一个FPS游戏Demo

    目录 一.unity3d简介(平台,应用范围,经典游戏) 二.界面,基础操作(界面,创建场景,灯光系统,摄像机,组件,脚本语言) 1.界面 2.基本操作 三.demo制作(坐标系统,视角控制,移动,碰 ...

  6. Unity 知识点 - 3D游戏 - 视角跟随和键盘移动

    前言: 目前在跟着麦扣的3D游戏教程入门unity,<Unity官方游戏开发认证教程:3D RPG系列课程介绍(Unity2020)|Unity中文课堂>. 教程中使用的跟随相机是安装 c ...

  7. FPS游戏UE4逆向视频教程

    FPS游戏UE4逆向视频教程 课程成品演示-课程前言 寻找Count(吃鸡模拟器) 寻找世界数组地址里的坐标(吃鸡模拟器) 寻找矩阵(吃鸡模拟器) 易语言编写代码-实现绘制框-(吃鸡模拟器) 易语言编 ...

  8. unity应用实例——从头撸一个全新的FPS游戏(1)

    从今天开始打算从头开始搞一个全新的FPS游戏,引擎使用的是unity2017,所有美术资源都计划从商店购买或是网上下载(自己实在搞不来),主要玩法是玩家需要穿越多个地图到达目的地,每个地图类似于一个地 ...

  9. [Unity学习笔记:FPS游戏制作(1)]角色的移动,旋转与推进上升————(2021.6.13学习笔记)

    文章目录 一,什么是FPS游戏 二,功能实现思路与过程 (1)新建角色 (2)实现移动功能的思路 (3)实现旋转功能的思路 (4)实现推进上升功能的思路 (5)具体代码 (5)脚本的使用方法 (6)最 ...

最新文章

  1. java 变量作用域 c语言_java - 数据结构 c语言 作用域问题
  2. Ubuntu 下连接Github
  3. CLEARTEXT communication to xxx not permitted by network security policy
  4. 临时变量不能作为非const引用
  5. Windows平台Eclipse配置Maven
  6. 单片机c语言位运算写法,单片机与嵌入式系统中C语言的位运算小记
  7. AUTOSAR从入门到精通100讲(二十一)-AUTOSAR通信篇—IpduM模块
  8. 第一次冲刺阶段(三)
  9. git中使用fork
  10. c# sha1签名 微信_C#微信公众号JS接口签名算法
  11. 安装过程中检测数据库是否已经存在
  12. 简化CommunityServer模板机制
  13. 小D课堂 - 新版本微服务springcloud+Docker教程_6-05 高级篇幅之高并发情况下
  14. Linux Shell脚本编程-语句控制
  15. mysql英文怎么发音_英文字母和汉语拼音先学哪个?科学答案在这里
  16. 原生js添加class
  17. 百度文库,道客巴巴等文库免积分下载
  18. python数字转拼音输出,[python] pinyin 模块 -- 将汉字文本转化为拼音
  19. OneZero第二周第二次站立会议(2016.3.29)
  20. jQuery菜鸟学习实例

热门文章

  1. Linux 线程同步
  2. kitti数据集转换成可运行的YOLOv5格式
  3. 服务器存储项目验收单,共享存储服务器验收
  4. 微型计算机及控制技术试题,微型计算机控制技术试卷
  5. 又是一篇教你摸鱼的文章,用Python实现自动发送周报给老板
  6. 删除下拉框只找23火星软件_下拉框关键词软件只找23火星下拉框词工具佳选火星...
  7. 2011年7月编程语言排行榜,Objective-C将成为年度语言
  8. Word复选框字体丢失解决
  9. XMIND中调整某一主题中英文大小写
  10. 机器学习数学基础:线代(3)