萌新学子fps游戏透视 使用易语言绘制平面的方框
本帖最后由 1156000381 于 2019-3-31 23:45 编辑首先打开易语言选择程序新建,然后选择windows窗口程序,基本组件点击“按钮”。
在启动窗口框选出来,双击按钮进入编程界面,
然后加载模块(一个精易模块,一个D3D的绘制模块)。
https://static.52pojie.cn/static/image/hrline/4.gifhttps://static.52pojie.cn/static/image/hrline/4.gifhttps://static.52pojie.cn/static/image/hrline/4.gifhttps://static.52pojie.cn/static/image/hrline/4.gif
然后开始编写程序:
因为辅助一般都是在游戏原界面上在覆盖一个透明化界面所以我们要写一个游戏的透视首先要做的就是创建这个一个覆盖在游戏表面的窗口然后才能在这个窗口上画方框。因此我们要写的第一条命令就是窗口创建() 然后创建窗口需要什么呢?必须是这个窗口的宽度和高度啊。因为Windows窗口都是一个平面所以它只有宽和高(可以理解为一个长方形的长和宽)。然后我们有了宽度和高度就能很容易的创建出一个窗口了。那么我们如何获取一个游戏的高度和宽度呢?首先我们要获取到这个游戏的进程窗口也就是“窗口句柄”那么什么是句柄?(不知道自己理解的对不对)我是这么理解的 我一共打开了N个窗口然后我给窗口编号分别为1.2.3.4.5.6然后1就是第一个窗口的句柄2就是第二个窗口的句柄。如何获取句柄呢?这里我们用到了精易编程助手打开精易编程助手点击 窗口探测 找到游戏进程(我用的是cs1.6)然后在左侧就可以很容易的找到窗口句柄了。接着我们用到了第二条编程命令窗口_取句柄但是我们之前说过窗口句柄是我随便起的名字可能我下次打开我就给他换了另一个名字了所以这里我们不能直接使用窗口句柄我们需要更深一步的记住他让他不论怎么改变名字都可以快速找到他。因此我们需要找到一个永远不会被改变的特征来记住他。那么这里我们就要用到窗口类名和窗口标题了。窗口类名和窗口标题又是什么呢?我是这么理解的把窗口看作是一张身份证句柄就是你的名字你随时可以去公安局进行更改窗口类名和窗口标题就相当于出生日期和身份证号是一旦确定很难更改的。因此我们可以通过精易编程助手获得窗口标题和窗口类名。
就这样我们获取到了窗口句柄。当我们有了这个句柄之后当我们点击按钮的时候程序就会第一时间读取cs1.6的游戏进程。为了方便之后调用我们定义了一个变量“CS句柄”用它来存放我们获取到的句柄快捷键为ctrl+L 名称为:cs句柄类型为:整数型那么当我们有了游戏进程之后要如何取得宽和高呢?这里我们用到了另一条命令:窗口_取客户区矩形那么什么是客户区矩形呢?
红线框选的就是客户区矩形这里他提示我们需要窗口句柄是什么意思呢?就是他要先取到程序然后他才能在程序上边获取到游戏的界面。然后我们把之前定义好的用来存放我们获取到的句柄的变量“CS句柄”给他之后我们在定义一个新的变量“CS矩形信息”用来存放我们获取到的游戏界面矩形类型为:精易_矩形当我们取到了客户区矩形之后就可以很舒服的来确定cs窗口的宽度和高度了首先我们需要定义一个数据类型来存放我们获得的数据快捷键ctrl+g然后我们还需要一个变量来存放这个数据接着我们定义这个变量“cs窗口高度数据”数据类型为我们刚刚定义的宽度高度数据OK有了这些我们呀如何去计算我们获得到的这个窗口的宽和高呢?又因为计算机是把左上角规定为0,0的所以 所以我们写下如下代码.CS窗口高度宽度.高度 = CS矩形信息.底边 - CS矩形信息.顶边CS窗口高度宽度.宽度 = CS矩形信息.右边 - CS矩形信息.左边 之后我们就可以创建这个覆盖于游戏窗口表面的窗口了。我们把获取到的宽度和高度填入”窗口创建”代码接着就是“回调”这个是什么意思我也没有弄明白 如果有大佬希望讲解一下!!!!!!教程中在这创建了一个子程序叫做“窗口创建回调”不懂先跟着做
Hwnd就是你创建的这个覆盖在游戏窗口之上的窗口的名字我们这里还是用一个新的变量来表示他 这个变量我们也叫hwnd这样我们就把窗体创建完毕了。然后循环 代码为消息循环()调试输出会发现窗体是创建出来了但是他并不跟随游戏窗口移动这个时候就需要我们写下另外一条代码了 刷新窗口()同时我们创建子程序“刷新窗口”在子程序下面写下代码“移动窗口”移动到哪呢?移动到我们之前获取到的矩形窗口前面就是这个窗口前面 代码如下那么我们的窗体也创建完毕了下面就是绘制了 绘制呢也是非常的简单啊写下如下代码绘制矩形2 (400, 260, 100, 250, 1, 转换颜色 (#红色, ))
数据为什么这么写就不用再说了吧跟刚才那张图一个意思然后我们就在游戏窗口上创建出来了一个不会动的方框了然后我做出来就是这样的了源码:
主要知识点总结:如何获得游戏窗口句柄如何取游戏窗口的宽和高(超级重点)如何创建窗体如何绘制
caoying888 发表于 2019-4-1 18:39
没有了?
我还在学啊下一节没有理解透彻呢还在理解呢好多东西不明白还要一个一个百度最少要弄懂80才可以发出来啊 Mrk丶Nodejs 发表于 2020-2-13 22:26
我问一下 ,就是游戏最小化后,绘制菜单就出错错误形式,还有一些游戏是全屏的但是游戏数据是800*600分辨率 ...
你那个信息循环这个玩意要,在你打开辅助时就要开始循环,就可以解决了 你用尺子量的?:lol 教程思路不错,后期教程应该也更不错。 学习一下!! 没有了? YS123456 发表于 2019-4-1 00:06
你用尺子量的?
你用QQ截图啊截的时候不是会出现一aaa乘bbb的形式吗? 西柚的课吧 兄弟你的模块能发我一下吗 鼓励精品贴,下期几时出???