用python写一个带界面的剑灵取色卡刀工具
来源:互联网 发布:编程下三角九九乘法表 编辑:程序博客网 时间:2024/06/14 23:28
一.背景介绍
之前一段时间在学习python,有以前的C++基础理解起python来还是没有太大的压力的,看了下语法后打算写一个简单的程序练练手,同时也熟悉下python的语法,同时呢我也在玩剑灵这款游戏,里面有些技能操作会按的手痛...,所以就借着这个机会写一个简单的卡刀软件,借鉴了网上的各种取色宏的思路,通过对比技能所在区域的屏幕像素进行模拟鼠标键盘的操作来完成卡刀的过程,下面就简单介绍下整个流程;二.思路分析
首先,选择的语言是python,那么就先去看看python的语法,需要知道python的基本内容,原先有其他语言基础的可以去看看菜鸟教程,教程比较基础,详细,但是是文字类的,不是视频,原先没有语言基础的可以去搜一搜python相关的视频教程,方便理解学习。然后,确定软件需要的功能:简单的UI,图像获取功能,图像对比功能,模拟鼠标键盘事件功能;有了这几个功能后基本就能完成我们这个小工具了。第三步,这些功能可以选择自己实现或者找python已有的库来完成,既然是初学者嘛,自己用python写这些功能还是有一定的难度的,所以能已经有的库,就用别人的,么有的就自己实现。三.知识准备
UI:这里我使用的是python自带的库,Tkinter,文档在这:Tkinter文档,当然还有其他的可以选择例如PyQt,wxPython等,可以自行选择图像的获取:主要是获取屏幕上指定区域的像素构成的图片,相当于是一个简单的截图功能,这里选择的是Pillow这个python图像处理的库,需要进行安装,文档在这:pillow文档,网上搜一搜也是一大堆的教程,安装命令: pip install pillow图像的对比:这里我采用的是这篇文章中的做法鼠标键盘的模拟:使用的是PyUserInput,文档在这:PyUserInput文档,使用起来非常简单,另外说到了鼠标键盘的模拟,自然要谈一谈鼠标键盘事件的捕捉,可以使用PyHook这个库,文档在这:PyHook文档,使用很简单。程序打包:使用pyinstaller,文档在这:pyinstaller文档,记得打包时加上--uac命令以便获取管理员权限这个程序我是我使用了剑灵的UI文件来获取相关技能的图标位置,所以还用到了XML解析相关的库,这里推荐这篇博客:点击打开链接其中有些库官方没有64位版本的,可以到这里看看:python库,但需要注意的是,这里的库是非官方版本,不提供任何保证,仅用于学习使用。四.问题总结
考虑到这个工具中并不涉及太多的算法,主要是通过阅读以上文档或者网上相关的教程来组织自己的软件的结构,这里就不贴代码了,完整的代码放在文末,主要是需要对python的语法各种数据结构慢慢理解,运用,这里就介绍下我写代码的过程中遇到的一些问题:1.因为卡刀过程需要不断匹配对应图像是否相等,所以需要一个死循环,但是这样就会导致程序失去相应,后面我使用多线程的方式解决了这个问题,将图像判断的死循环放到另一个线程中处理,这样就不会导致程序失去响应,多线程的介绍可以参考:点击打开链接2.程序需要在其他程序内部也能模拟键盘鼠标事件,但是我一开始一直做不到这一点,就是在桌面上能正常模拟,但是在剑灵程序内部却模拟不了,后面偶然在知乎看到一篇文章提到windows下需要管理员权限,所以我打包程序的时候添加了获取管理员权限的命令,最后程序就能在剑灵内部也能模拟事件了3.键盘事件模拟的时候,"V"和“v”是不一样的,少了一个shift按键的动作,这个地方一开始没有注意,导致程序运行后出现了一些很奇怪的现象,需要按一下shift才能去除,所以这点需要注意4.还有一些遗留问题,虽然程序可以正常运行,也可以正常匹配图像,并且模拟鼠标键盘事件,但是不够灵敏,所以作为卡刀程序还是不行的....,不过作为学习python还是可以的,另外我猜测是因为图像匹配算法不够好,导致运算时间太长,也许可以通过增加线程解决这个问题,不过暂时先在这挖个坑,之后来填把使用的是python 2.7.13 x64位进行编写完整代码
阅读全文
0 0
- 用python写一个带界面的剑灵取色卡刀工具
- python使用tkinter写带界面的工具
- python使用pyqt写带界面工具
- 学习python tkinter 写的一个工具界面
- 用python写的一个网页测试工具
- python写的一个邮件收发工具
- 用Qt写软件系列三:一个简单的系统工具之界面美化
- 用Qt写软件系列三:一个简单的系统工具之界面美化
- python写的一个服务器自动巡检工具
- 用java写的一个程序,可以调用windows系统中自带的各种工具,例如截图,便签等
- 用python写登陆界面
- [PyQt] Python+PyQt4 写的有一点仿Window自带的看图工具
- python文件传输带界面的客户端
- MBProgressHUD 显示一个 带百分比的界面
- 用C#来写一个管理系统的登录界面
- 用ASP.NET写的一个注册界面
- 用Html写一个简单的登陆界面
- 用JSP写的一个用户登录界面
- 几个博客推荐
- PHP小知识速记
- CentOS6.9中/boot下initramfs-2.6.32-696.el6.x86_64.img的删除和恢复
- Tomcat的两种部署方式
- package.path和package.cpath
- 用python写一个带界面的剑灵取色卡刀工具
- linux下查找文件及内容
- Android开发 Eclipse转Android Studio之打包报Multiple dex files define Landroid/support/annotation/AnimRes
- vector相关使用
- Thrift
- date时间加减(linux,aix)
- LIBSVM在matlab下的使用安装
- Git-数据库的基本使用方法
- 1Z0-051 30. Evaluate thefollowing CREATE TABLE commands