vc6做对对碰外挂原理(三)

2014-03-10 12:50:22 · 作者: · 浏览: 209

 

  2)分析棋盘数据

  得到棋盘数据以后,需要对棋盘数据进行分析了,思路是分别分横向和纵向遍历所有的格子,先找到两个相同动物相连的格子,然后找到周围6个可能移动的格子,只要在6个格子中找到一个与那两个相同的,就说明可以移动那个格子中的动物了。

  比如:

  只要在C、D、E、F、G、H中找到任意一个与A、B相同的动物,就可以了。具体的代码也比较简单,就是对数组的判断和操作了,在这里就不详细给出了。

  3)移动动物

  从上面的分析我们可以知道需要移动哪里的动物了,现在我们只要标识出来那个位置其实就可以达到目的了,但是为了方便,最好还是不用自己动手,而利用程序自动来完成移动的操作。实现也比较简单,只需要给游戏窗口发送消息就可以实现,代码如下:

  由于开始是直接画图上去没有实现自动移动,所以函数名还是用的DrawRect:)

  x,y是上面得到的移动的坐标。

  void CQQGameToolDlg::DrawRect(int x, int y)

  {

  int xx,yy;

  xx = (x-1)*48 + 10 + m_posX;

  yy = (y-1)*48 + 10 + m_posY;

  // ::Rectangle(hDc,xx,yy,xx + 10,yy + 10);//这里是画一个方块上去,注释掉了。

  LPPOINT lpPoint = new CPoint();

  lpPoint->x = xx;

  lpPoint->y = yy;

  ::ClientToScreen(hWnd,lpPoint);

  LPARAM lParam = MAKELPARAM(xx,yy);//鼠标点击的坐标

  ::SendMessage(hWnd,WM_LBUTTONDOWN,MK_LBUTTON,lParam);//发送鼠标DOWN的消息

  ::SendMessage(hWnd,WM_LBUTTONUP,MK_LBUTTON,lParam);//发送鼠标UP的消息

  }

  这样就完成了一个自动游戏的小工具,还比较简单吧?如果配合变速齿轮,效果会更好的。根据同样的原理,类似这样的游戏其实都是可以做出来这种外挂的,比如连连看、俄罗斯方块、泡泡龙等等,只是需要对游戏本身进行仔细分析才行。

  还要补充一点:使用的时候必须让对对碰的棋盘完全显示出来,不能有窗口挡住否则得到的数据就不准确了。