Py学习  »  Python

一个基于python的自动玩游戏辅助

子涵仙人 • 3 年前 • 316 次点击  

一、背景

业余时间我会玩一玩游戏,然而并不是所有所有的游戏内容都会让我一直保持着兴趣。一段时间后,懒癌就犯了……
在这里插入图片描述

场景分析

我玩的游戏是一个叫做“火影忍者Online”的网页游戏,几乎所有的操作都可以通过鼠标进行操作。我对该游戏中能够进行自动完成任务的场景进行了分析。如下图:
在这里插入图片描述
其实该游戏提供了一种“键鼠记忆”的功能,在QQ游戏和官方微端中都有入口。但是,我们知道键鼠记忆是基于时间间隙、坐标自动点击功能,用一个恰当的比喻来讲。键鼠记忆就是一个强大的瞎子,他能够记下你点击屏幕的位置、先后两次点击的时间间隙。然而问题来了:

  • 如果电脑或网速卡一点,前后两次事件的触发间隔是不一致的,而瞎子才没注意到这些,他还是按照自己的记忆,不停的点、点、点。
  • 鼠标记忆瞎点,难道不怕某种机缘巧合之下,把装备洗白白了吗?
  • 不同的分辨率,键鼠记忆点击的位置不能自动适应;
  • 自身bug,之前用的多的同学应该知道,点着点着它就没反应了。

二、方案选择

心血来潮,我调研了几种基于屏幕色块识别来进行点击的实现方案。

方案对比:

我找到了Python和按键精灵两位大哥,并找了一下他们的江湖踪迹,简单总结如下图:
在这里插入图片描述
Python在当下的互联网环境中也是名列前茅的大哥,无论在“社区活跃度”、资料完整度、语言环境方面都是碾压式的优势。而自己又习惯于基于代码的编程,义无反顾选择了Python作为实现语言。此前,对于Python能干什么的认知,我还停留在大数据处理中的算法这个层次,直到在知乎上看到一位大神用Python写的自动答题工具的视频。果不其然,围绕色块识别、键鼠操作在网上能够找到的资料数不胜数。

三、设计思路

火影忍者Online自动玩游戏
目前软件已更新到0.5版本,已支持功能有:

  • 基于easyGui提供用户界面,选择配置文件执行对应的任务;
  • 配置文件支持多个任务、重复执行、轮询次数、执行频率的设置;
  • 支持多屏幕的句柄识别和坐标计算。

四、代码撸起来

因为篇幅原因,在此不详述代码的具体逻辑了。
在这里插入图片描述

五、工具效果

在这里插入图片描述
后续补充视频录像供各位看官欣赏~

我的心得

其实代码就是一种工具,最好的学习方法就是实践,在实践中有目的开展学习。在实践的过程中,逐渐建立起对Python的认识。
基于思维导图的材料整理也是我比较推荐的一种学习方法,本文的截图我是基于“百度脑图”进行的材料整理,当然,我还是更喜欢“Processon”一些,在此推荐给大家,也希望大家点击我的链接进行注册,以增加一下我的文件个数。希望亲们动动小手,期待以后更多的交流哦~

邀请一个好友成功注册ProcessOn并绑定微信账号,您即可获取3张文件数的奖励 去邀请
我的专属邀请链接: https://www.processon.com/i/55e3d74ee4b0e4854096c282

在这里插入图片描述

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/70597
 
316 次点击