自动打地鼠的JAVA应用程序最近接触了一个游戏叫打地鼠这个游戏在windows的一个窗口中单独运行的。这个小地鼠在不同的洞穴钻出来,我们要拿锤子不断的去砸他才可以得分,能否通过JAVA来实现一个窗口内自动找图然后模拟鼠标点击这样一个应用程序呢?希望大家给一些思路,看看应该用JAVA中的哪些API来完成这项工作。而且要求是这个打地鼠游戏的windows窗口不管是当前状态还是最小化,都不影响自动打地鼠程序的运行,也就是支持后台运行吧。当前遇到一些问题没有什么思路希望各位高手指点一二。1、操作系统中可能开有不同的windows窗口,可能有计算器、记事本或者其他程序,那么我们如何来准确有效的抓取这个打地鼠的窗口句柄呢?然后只针对这个句柄所在的窗口进行相应的操作?2、如何在打地鼠游戏窗口内进行目标图片的搜索和比对?是利用图片截取保存以后与目标图片进行对比还是进行窗口区域像素逐行搜索比较好?或者还有其他更好的方法吗?(这个搜索比对的过程中利用哪些API?)3、图片比对成功后模拟鼠标左键双击相应位置,这个应该如何来实现呢?(利用哪些API程序)现在头脑比较混乱希望高手给一些思路,是不是JAVA做这样的应用不在行呢?

解决方案 »

  1.   

    你用Java做可以。
    但是必须用到 JNI了。
    我可以告诉你用什么Win32 API来访问窗口,和窗口截图什么的。FindWindow 来找到游戏窗口。模拟点击很简单,mouse_event这些API你都可以搜到。比较图片这个麻烦一点,首先你要频繁截图,然后对前后两个图片进行比较。
    有不一样的地方,说明有 地鼠 出现【假设背景是完全静止的】
    你需要的API很多。
    GetDC,
    CreateBitmap等等
      

  2.   

    使用canvas画出来就好了,还简单。先获取鼠标所标相对canvas左上角的坐标。然后,在屏幕左下角开始建立xyz坐标系。
    z
    |
    --->x然后建立土洞和鼹鼠和锤子三个模型。土洞、鼹鼠与锤子的投影在同一平面xy内。
    土洞绘制时:根据土洞在屏幕放置位置不同,缩放模型。每次,鼹鼠都出现在在土洞的中心点,图形跟土洞缩放相同。锤子投影在xy平面。
      

  3.   

    想学习java可以试试做这个,想用现成的直接下载按键精灵。
      

  4.   


    还是想用JAVA来做这个程序 
    主要就是为了学习JAVA
      

  5.   

    这个用C  会方便点,JAVA在这方面无优势