吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15826|回复: 23
收起左侧

[其他转载] 萌新学子fps游戏透视 使用易语言绘制平面的方框

[复制链接]
Jiangliuer1 发表于 2019-3-31 23:39
本帖最后由 1156000381 于 2019-3-31 23:45 编辑

首先打开易语言选择程序新建,然后选择windows窗口程序,基本组件点击“按钮”。
在启动窗口框选出来,双击按钮进入编程界面
然后加载模块(一个精易模块,一个D3D的绘制模块)。


然后开始编写程序:
因为辅助一般都是在游戏原界面上在覆盖一个透明化界面所以我们要写一个游戏的透视首先要做的就是创建这个一个覆盖在游戏表面的窗口然后才能在这个窗口上画方框。因此我们要写的第一条命令就是窗口创建()                                                            图片1.png 然后创建窗口需要什么呢?必须是这个窗口的宽度和高度啊。因为Windows窗口都是一个平面所以它只有宽和高(可以理解为一个长方形的长和宽)。然后我们有了宽度和高度就能很容易的创建出一个窗口了。那么我们如何获取一个游戏的高度和宽度呢?首先我们要获取到这个游戏的进程窗口也就是“窗口句柄”那么什么是句柄?(不知道自己理解的对不对)我是这么理解的 我一共打开了N个窗口然后我给窗口编号分别为1.2.3.4.5.6然后1就是第一个窗口的句柄2就是第二个窗口的句柄。如何获取句柄呢?这里我们用到了精易编程助手 图片2.png 打开精易编程助手点击 窗口探测 找到游戏进程(我用的是cs1.6)然后在左侧就可以很容易的找到窗口句柄了。接着我们用到了第二条编程命令窗口_取句柄 图片3.png 但是我们之前说过窗口句柄是我随便起的名字可能我下次打开我就给他换了另一个名字了所以这里我们不能直接使用窗口句柄我们需要更深一步的记住他让他不论怎么改变名字都可以快速找到他。因此我们需要找到一个永远不会被改变的特征来记住他。那么这里我们就要用到窗口类名和窗口标题了。窗口类名和窗口标题又是什么呢?我是这么理解的  把窗口看作是一张身份证句柄就是你的名字你随时可以去公安局进行更改窗口类名和窗口标题就相当于出生日期和身份证号是一旦确定很难更改的。因此我们可以通过精易编程助手获得窗口标题和窗口类名。 图片4.png
就这样我们获取到了窗口句柄。当我们有了这个句柄之后当我们点击按钮的时候程序就会第一时间读取cs1.6的游戏进程。为了方便之后调用我们定义了一个变量CS句柄”用它来存放我们获取到的句柄快捷键为ctrl+L 名称为:cs句柄  类型为:整数型 图片5.png 那么当我们有了游戏进程之后要如何取得宽和高呢?这里我们用到了另一条命令:窗口_取客户区矩形那么什么是客户区矩形呢? 图片6.png
红线框选的就是客户区矩形 图片7.png 这里他提示我们需要窗口句柄是什么意思呢?就是他要先取到程序然后他才能在程序上边获取到游戏的界面。然后我们把之前定义好的用来存放我们获取到的句柄的变量CS句柄”给他 图片8.png 之后我们在定义一个新的变量CS矩形信息”用来存放我们获取到的游戏界面矩形  类型为:精易_矩形 图片9.png 当我们取到了客户区矩形之后就可以很舒服的来确定cs窗口的宽度和高度了首先我们需要定义一个数据类型来存放我们获得的数据  快捷键ctrl+g 图片10.png 然后我们还需要一个变量来存放这个数据接着我们定义这个变量cs窗口高度数据”数据类型为我们刚刚定义的宽度高度数据 图片11.png OK有了这些我们呀如何去计算我们获得到的这个窗口的宽和高呢? 图片12.png 又因为计算机是把左上角规定为0,0的所以 所以我们写下如下代码.CS窗口高度宽度.高度 = CS矩形信息.底边 - CS矩形信息.顶边CS窗口高度宽度.宽度 = CS矩形信息.右边 - CS矩形信息.左边 之后我们就可以创建这个覆盖于游戏窗口表面的窗口了。我们把获取到的宽度和高度填入”窗口创建”代码 图片13.png 接着就是“回调”这个是什么意思我也没有弄明白 如果有大佬希望讲解一下!!!!!!教程中在这创建了一个子程序叫做“窗口创建回调”不懂先跟着做
图片14.png
Hwnd就是你创建的这个覆盖在游戏窗口之上的窗口的名字我们这里还是用一个新的变量来表示他 这个变量我们也叫hwnd这样我们就把窗体创建完毕了。 图片15.png 然后循环 代码为消息循环()调试输出会发现窗体是创建出来了但是他并不跟随游戏窗口移动 图片16.png 这个时候就需要我们写下另外一条代码了 刷新窗口()同时我们创建子程序“刷新窗口”在子程序下面写下代码“移动窗口”移动到哪呢?移动到我们之前获取到的矩形窗口前面 图片17.png 就是这个窗口前面 代码如下 图片18.png 那么我们的窗体也创建完毕了下面就是绘制了 绘制呢也是非常的简单啊写下如下代码绘制矩形2 (400, 260, 100, 250, 1, 转换颜色 (#红色, )) 图片19.png 图片20.png
数据为什么这么写就不用再说了吧  跟刚才那张图一个意思然后我们就在游戏窗口上创建出来了一个不会动的方框了 图片21.png 然后我做出来就是这样的了  源码: 图片22.png
主要知识点总结:如何获得游戏窗口句柄如何取游戏窗口的宽和高(超级重点)如何创建窗体如何绘制








免费评分

参与人数 6吾爱币 +6 热心值 +4 收起 理由
wdhwoaiwoziji + 1 + 1 我很赞同!
bury咩 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
♂成成の + 1 已学会,青继续更新
呵呵路过 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
alicc + 1 + 1 鼓励转贴优秀软件安全工具和文档!
boy7928 + 1 精品帖子

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Jiangliuer1 发表于 2019-4-1 19:37

我还在学啊  下一节没有理解透彻呢  还在理解呢  好多东西不明白  还要一个一个百度  最少要弄懂80才可以发出来啊
laodu5201314 发表于 2021-2-17 21:35
Mrk丶Nodejs 发表于 2020-2-13 22:26
我问一下 ,就是游戏最小化后,绘制菜单就出错错误形式,还有一些游戏是全屏的但是游戏数据是800*600分辨率 ...

你那个信息循环这个玩意要,在你打开辅助时就要开始循环,就可以解决了
YS123456 发表于 2019-4-1 00:06
alicc 发表于 2019-4-1 00:54
教程思路不错,后期教程应该也更不错。
a1270832428 发表于 2019-4-1 17:59
学习一下!!
caoying888 发表于 2019-4-1 18:39
没有了?
 楼主| Jiangliuer1 发表于 2019-4-1 19:36

你用QQ截图啊  截的时候不是会出现一aaa乘bbb的形式吗?
AccLoo 发表于 2019-4-4 13:25
西柚的课吧
sevent 发表于 2019-6-14 19:04
兄弟你的模块能发我一下吗
呵呵路过 发表于 2019-6-15 16:59
鼓励精品贴,下期几时出???
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 23:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表