1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 基于MFC对话框的qq游戏连连看外挂

基于MFC对话框的qq游戏连连看外挂

时间:2023-11-24 07:38:14

相关推荐

基于MFC对话框的qq游戏连连看外挂

最近和朋友玩连连看,奈何朋友太厉害了,玩了几盘都孔夫子搬家,碰巧这几天都在看孙鑫的书,于是就萌生了做一个qq连连看外挂的念头,权当练练手嘛,写这东西的时候也参考了很多文章,其中这篇文章对我最有帮助:

1./hsapphire/archive//03/14/1983616.html

qq连连看外挂的思路,我同样也采取了网上较为普遍的方法:

热键响应->获取游戏窗口句柄->分析游戏区域图像->将图像化为二维数组->实现消除算法

热键响应

在CXXXXXXXDLG类的OnInitDialog中注册热键

<span style="font-size:14px;">::RegisterHotKey(m_hWnd, 001, NULL, VK_F1); //在这里我注册的是F1键</span>

然后在CXXXXXXDLG类的类向导中添加消息WM_HOTKEY,再在消息函数里面编写就可以使用热键了 。

获取游戏窗口句柄:

CWnd* pGameWnd;pGameWnd=GetForegroundWindow(); //获取前台的窗口类对象

然后通过 pGameWnd->m_hWnd就能得到当前游戏窗口的句柄了,不过这样会有一个缺陷,就是一定要让游戏窗口是前台才行。

分析游戏区域图像 &&将图像化为二维数组:

游戏区域内一共有11*19个小方块,每个小方块长35宽31,并且第一个方块距离左边边界大约在15像素。距离上边边界大概在182像素,在上面给出的第一个连接中有关于方块像素的详解图.这里就不盗图了。

然后我们就可以通过用 GetPixel()来获取像素点,之前尝试过取3个点,发现不够精准,建议每个方块取6个点以上这样。

可以建立一个COLORREF pGameRGB[11][19][6]来得到并且保存像素点,再通过这个二维数组来将相同颜色方块编号,再存入用于实现算法的二维数组pGameColor[11][19]中。

需要注意的是相同颜色的方块有可能有8个!,所以在判断背景颜色的时候就是8个不同颜色,所以有8个以上相同图案的就是背景颜色啦。

实现算法

关于连连算消除方块的算法在网上一搜是一大堆了,知道规则是方块到方块之间最多只能拐两次弯,就可以相应地写出算法了。这里就不详细地写出来了。最后在成功匹配到方块的时候模拟鼠标点击就可以了,不过要注意需要将游戏窗口内的坐标转换到屏幕中。

最后附上我写的程序&&源码,工程需在vs下打开。

/s/1hqmUuFE

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。