下面,图老师小编带您去了解一下VC++ 6.0制作QQ连连看外挂,生活就是不断的发现新事物,get新技能~
【 tulaoshi.com - 编程语言 】
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)图一 界面描述
一、制作思路
得到QQ连连看窗口指针,从而得到CDC;
对每幅图片取4个点进行编码;
实现连连看的算法;
模拟鼠标消去块;
二、部分代码
//定义的数据
bool flagx=true;
int point1x,point1y,point2x,point2y;//保存需要单击点的位置
struct MYCOLOR
{
COLORREF c[4];
};
MYCOLOR tc[230];//颜色表230〉11*19
int tcnum; //所有图片的种类
int map[19][11]; //存放每个图片的颜色索引
int r1,g1,b1,r2,b2,g2;
int pop1,pop2;
//对图形进行编码
void CZg1Dlg::OnButton3()
{
int pnum=0;
//////////////////
int t[4]={15,11,15,21};//取的4个点的x相对位移
int tt[4]={17,17,21,17};////取的4个点的y相对位移
////////////////////
int result;
tc[0].c[0]=tc[0].c[1]=tc[0].c[2]=tc[0].c[3]=7753015;
tcnum=1;
MYCOLOR tmp;
CPoint p(10,180);
CDC *pdc=myc-GetDC();
CString hh=" 编码结果: ";
CString h;
int myr,myg,myb,t_t,sh;
for(int i=0;i11;i++)
{
p.y=180+i*35;
for(int j=0;j19;j++)
{
p.x=10+j*31;
for(int k=0;k4;k++)
tmp.c[k]=pdc-GetPixel(p.x+t[k],p.y+tt[k]);
sh=0;
for(t_t=0;t_t4;t_t++)
{
myr=GetRValue(tmp.c[t_t]);
myg=GetGValue(tmp.c[t_t]);
myb=GetBValue(tmp.c[t_t]);
if ((myr73)&&(myr45)&&(myg50)&&(myg90)&&
(myb103) &&(myb129))
sh++;
}
if(sh==4)
map[j][i]=0;
else
{
pnum++;
result=findcolor(tmp);
if(result==-1)
{
tc[tcnum].c[0]=tmp.c[0];
tc[tcnum].c[1]=tmp.c[1];
tc[tcnum].c[2]=tmp.c[2];
tc[tcnum].c[3]=tmp.c[3];
map[j][i]=tcnum;
tcnum++;
}
else
{
map[j][i]=result;
}
}
h.Format("%d ",map[j][i]);
hh+=h;
sh=0;
}
hh+="";
}
bool yy=true;
for(int y1=0;y111;y1++)
{
for(int y2=0;y219;y2++)
{
if(tc[map[y2][y1]].c[0]==-1)
yy=false;
}
}
CString cs2;
cs2.Format("总共有 %d 可消!",pnum);
hh+=cs2;
MessageBox(hh);
for(i=0;i11;i++)
for(int j=0;j19;j++)
{
mymap[i][j]=map[j][i];
}
if(!yy)
{
MessageBox("请重新编码!
编码时要确保游戏窗口不要被其他窗口挡住!");
}
flagx=true;
}
三、结束语
不足之处是点击2次鼠标才能消去1对。因为这个游戏必须鼠标真正点击1次才能作到实现鼠标模拟的另外一次单击。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)来源:http://www.tulaoshi.com/n/20160219/1626846.html
看过《VC++ 6.0制作QQ连连看外挂》的人还看了以下文章 更多>>