《大家来找茬》游戏辅助工具开发

提示:本博文仅供学习交流,并无任何破坏游戏环境之意。


文章目录

  • 《大家来找茬》游戏辅助工具开发
  • 规则分析
  • 开发思路
  • 程序设计
    • 1.获取图片
    • 2.图片对比
    • 3.GUI显示
  • 总结

规则分析

在规定时间内找出2张相似的图片中不一样的5处地方就算过关,一般是连续5回合,也就是5组图 25个错误地方。在总时间内找到最多最快的算胜利。

开发思路

  1. 屏幕抓取
  2. 图片对比,找出不同之处
  3. GUI显示帮助信息

程序设计

1.获取图片

首先,获取游戏界面中两张相似图片。关键部分程序如下:

win32gui.GetWindowRect(handle)   # 获取窗口矩形坐标# 通过计算目标图片相对于父窗口的位置进行截取
img_ready = ImageGrab.grab((x1, y1, x2, y2))
img_left = ImageGrab.grab((x1 + 134, y1 + 463, x1 + 134 + 582, y1 + 463 + 439))
img_right = ImageGrab.grab((x1 + 820, y1 + 463, x1 + 820 + 582, y1 + 463 + 439))

运行结果如下图所示:

2.图片对比

将获取的两张图片进行对比,找出不同之处。两张图片的不同之处总结起来有两点:颜色差异和轮廓差异。颜色差异可通过简单的三通道求差获取,轮廓差异可通过轮廓检测后求差获取(预期方案)。但是在实际对比两张图片时发现其实两张图片完全不一样,一方面两者有一定的色差,另一方面两者轮廓并非绝对重合,而是存在一定偏差。所以我觉得采用将两张图片叠加,然后生成GIF动图的形式辅助我们用肉眼快速找出不同。这种生成GIF图的方法能够找出两者的轮廓差异,但是在颜色差异上略显乏力(特别是深红色和紫色,两者闪烁我根本看不出来有变化。),所以此时需要用到色差图进行”补漏“。相关关键代码如下:

diff = cv.subtract(cv.cvtColor(np.asarray(img_left), cv.COLOR_BGR2RGB),cv.cvtColor(np.asarray(img_right), cv.COLOR_BGR2RGB))def create_gif(image_list, gif_name, duration = 0.35):frames = []for image_name in image_list:frames.append(imageio.imread(image_name))imageio.mimsave(gif_name, frames, 'GIF', duration = duration)returndef main():image_list = ['img1.jpg', 'img2.jpg']gif_name = 'diff.gif'duration = 0.1create_gif(image_list, gif_name, duration)

运行结果如下图所示:

3.GUI显示

本来是想通过获取图片不同之处的坐标值,利用win32api的mouse_event进行单击操作,实现完全的自动化操作。但是由于时间和精力限制,使用GUI显示辅助判断信息的方式取缔了上述方案。关键代码如下:

    def run(self, evt):windowName = "大家来找茬"dst = get_picture(windowName)# cv.imshow("dst", dst)gif.create_gif(["img1.jpg", "img2.jpg"], "diff.gif", 0.1)self.animation.Stop()self.animation = AnimationCtrl(self.panel, -1, Animation('diff.gif'), pos = (0, 0))  # 创建一个动画self.animation.Play()  # 播放动图row, col, x = dst.shapebmp = wx.Bitmap.FromBuffer(col, row, dst)wx.StaticBitmap(self, -1, bmp, (0, 500), (bmp.GetWidth(), bmp.GetHeight()))  # BUG:静态图更新延迟

未解决BUG:静态图更新有延迟,一般gif更新后需再点击一次按钮才会更新jpg

总结

欢迎各位看官指出不足之处,并给予宝贵建议和意见!
想了解更多,或者下载源码:https://github.com/mstifiy/GameTool

《大家来找茬》游戏辅助工具开发相关推荐

  1. 找茬类辅助工具的编写

    主要有两个方面:屏幕抓图与贴图和像素比较与重设 若使用GDI,建议使用CImage类,比较方便. 原理很简单:将两幅图抓取下来,按像素比较,相同的设一种色,不同的设另一种色,然后形成新的图,再将此图贴 ...

  2. 比较不错的一个ios找茬游戏源码

    找茬游戏源码 ,这个是一款非常不错的ios找茬游戏源码,该游戏的兼容性非常好的,并且还可以支持ipad和iphone,UI界面设计得也很漂亮,游戏源码真的是一款非常完美,而且又很完整的一款休闲类的游戏 ...

  3. 由于找不到appvisvsubsystems32.dll_找茬游戏大全:我找东西贼快!小清新找茬游戏小程序,点开既玩...

    50000+游戏爱好者已加入我们! 每天推荐好玩游戏! 关注我们,沐沐带你发现好游戏! <我找东西贼快>游戏小程序好玩吗? <我找东西贼快>小游戏怎么玩? 怎么进入<我找 ...

  4. 【网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§】

    [网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§] 软件大小:11.53MB 软件语言:简体中文 软件授权:免费软件 更新时间:2013-06-19 01:27:40 应 ...

  5. 以前写的网页游戏辅助工具源码 传奇类的HOOK 封包 按钮

    以前写的网页游戏辅助工具源码 传奇类的HOOK 封包 按钮. 限量出源码,有需要的 116327160

  6. “QQ找茬”游戏的识别小软件JAVA源码

    "QQ找茬"游戏识别很简单,只包含查找定位.定位比较和显示三部分,作者设计两个类: 1.GUI类:frmZC类,包含"定位"和"查询"两个按 ...

  7. 找茬游戏中是如何设计两个图片的不同之处的

    使用程序自动生成不同是一件几乎不可能的任务 因此找茬游戏的图片还是需要作者自己PS 但是一对图只能使用一次实在是太浪费了 今天看了下Win8版的美女找茬的文件结构 搞清楚了他们的设计 首先处理图片 在 ...

  8. 萝卜游侠-一款搜索和修改内存地址的游戏辅助工具

    上次我发布的GameEnchanter也是一个强大的游戏修改工具.不知道的可以点GameEnchanter打开研究下.今天我就大家带来的是另一款游戏修改工具.萝卜游侠是一款搜索和修改内存地址的游戏辅助 ...

  9. Auto js编写微信小游戏 《一笔画完》 辅助工具--开发篇

    前言: 1.开发工具:Auto js 2.平台:安卓6.0以上 3.开发语言 :javascript 效果演示: 这里附上效果展示视频: 开发步骤: 1.建模,将游戏环境转化为数据 2.使用算法,寻找 ...

  10. QQ游戏辅助工具-大家来找碴(附源码)

    前几天看到一个朋友在QQ上玩找碴游戏,战绩实在是惨不忍睹,便想到写一个辅助工具.(难道这是程序员的职业病,什么问题都想通过编程解决?) 原理和程序都简单,有一定编程基础和基本图像处理知识的人只要有点耐 ...

最新文章

  1. ubuntu18 python_ubuntu18.0.4 python 开发环境
  2. 水很深,我还是下去了
  3. mysql 累计值_mysql 累计值计算
  4. 输入流输出流是以内存为标准_构建用于测试的超大内存输入流
  5. android app固定dp,Android屏幕适配—被偷走的dp
  6. java变量默为public_《Java8学习笔记》读书笔记(六)
  7. 爬虫之HTTP基础知识
  8. MySQL数据库性能优化之硬件瓶颈分析
  9. 如何简化卷积神经网络_卷积神经网络:简化
  10. c#定时器Timer
  11. 软件工程——软件详细设计
  12. 免费会员管理管理系统
  13. LeetCode 430. Flatten a Multilevel Doubly Linked List【链表/DFS/递归/迭代】中等
  14. 移动互联网技术(wifi)
  15. 第31章 MySQL 处理重复数据教程
  16. 宝元系统通讯软件recon_优软科技会场式电话录音系统
  17. STM32不能进入睡眠模式
  18. 家用计算机都是专用计算机吗,什么是因特网概念和互联网一样吗(因特网发展历程)...
  19. 明明努力了却学不好Java_为什么我这么努力,还是得不到自己想要的结果???...
  20. oracle数据库中的update语句的用法

热门文章

  1. 92_目标:2019年底博客访问量达到10W+
  2. 自己打羽毛球的若干问题
  3. 【ES6】ES6简介,ES6常用操作,let 、var和const的区别,看完我写的ES6,马上会的,你就是高手
  4. 我的世界漆黑一片 看不见明天
  5. 汉字编码及显示原理总结
  6. C++ 实现数字黑洞
  7. 文档服务器 件排名,服务器十大品牌排名
  8. 谈谈新加坡的电子政务
  9. php mysql电子_用php与mysql的电子贺卡代码
  10. 互联网商业化中,广告策略到底有哪些?(一)