相关文章推荐
还单身的红金鱼  ·  使用Python+Selenium制作Fla ...·  1 年前    · 
还单身的红金鱼  ·  实战Flash游戏开发_百度百科·  1 年前    · 
小胡子的领带  ·  鹅厂内部干货|微信小游戏开发技术怎么应用? ...·  1 年前    · 
小胡子的领带  ·  flash游戏引擎整理-腾讯云开发者社区-腾讯云·  1 年前    · 
小胡子的领带  ·  几个flash游戏引擎- AS3.0 - 博客园·  1 年前    · 
小百科  ›  使用Python+Selenium制作Flash游戏辅助开发者社区
Flash 游戏开发 社区功能 腾讯 selenium 云游戏
还单身的红金鱼
1 年前
企鹅号小编

使用 Python+Selenium制作Flash游戏辅助

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
企鹅号小编
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 使用 Python+Selenium制作Flash游戏辅助

使用 Python+Selenium制作Flash游戏辅助

作者头像
企鹅号小编
发布 于 2018-03-02 10:25:42
3.7K 0
发布 于 2018-03-02 10:25:42
举报
文章被收录于专栏: 企鹅号快讯 企鹅号快讯

知道 Selenium 用来测试或爬取动态内容,还真没想过用来做游戏外挂

作者:sincerefly

来源:https://blog.yasking.org/a/selenium-whereismouse.html

之前玩过一款游戏鼠标在哪里,如果说吸引人的地方莫过于在Linux下,这个游戏有BUG,于是,印象中我当时玩了一个多小时。

偶然想起这款游戏,又去玩了一会,突然想到最近用的selenium driver似乎可以自动化完成这个事情,想来应该可行

思考了一下,用selenium自动登录倒是很好搞定,但是想要确定点击位置就比较麻烦。因为是Flash游戏,不能打代码的主意,倒是可以截图分析图片,最初的想法是保存一个没有圈圈的图片,然后拿有圈圈的图片做对比,找出差异的地方,进行定位,我没有这么做,不知道PIL能不能做这个事情。在搜索的过程中,找到了更好的方法,使用OpenCV的函数可以识别圆。

整体流程如下:

QQ登录

selenium模拟登录很简单,唯一需要注意的就是操作登录框的时候需要切换iframe,当登录完成后返回之前的环境

开始游戏

进入游戏页面后,延时10s等待游戏加载完成,然乎使用selenium获取元素定位

这个location就是element相对于网页的位置,也就是游戏窗口左上角的位置。size就是element的长宽,查看网页源代码,和它们定义的 大小是一致的。换言之,selenium的位置尺寸单位都是px,更方便接下来的计算

因为开始按钮的位置是固定的,直接在location基础上算出来坐标点击即可

截图

selenium没有 功能,只能截展示出来的窗口,不过有了游戏窗口的左上顶点坐标和游戏窗口的长宽,可以使用PIL从整张图片中截取出游戏窗口

因为设置显示器大小为1366x768,这个网站在游戏加载后会有一个向下滚动使得游戏窗口位于屏幕中间的操作,因为游戏窗口相对于浏览器窗口向上移动了,所以截图出来的位置就会包含游戏窗口的下半部分和一百多像素的无关区域, 根据截图位置进行调整的数值。我没在更大的屏幕上测试,也许不具有通用性。

获取圆坐标

下面这篇文章很棒,详细讲解了使用OpenCV识别图像中圆的坐标。

我在他给的demo的基础上,简单修改下放在函数里,以便循环调用

点击

将以上功能在main中拼接起来,这个辅助工具就能正常工作啦,先登录,然后加载游戏,开始游戏,进入循环(获取截图,解析圆坐标,点击),点击后需要给一个两秒钟的sleep,不然下一个圆还没出现,并且升级后的提示"恭喜你"什么的也是会影响圆出现的时间,如果恰巧截图中没有出现圆,那么需要休息一下,继续截图,解析,点击。这样做的原因除了避免没有截取到圆的情况,也因为有时即使正确的出现圆,解析圆坐标的函数还是不能获取到坐标。这时,需要手动点击一下,毕竟要是让程序自己蒙一个,5次机会可能很快就用完了。不过遗憾的是,识别率不仅到不了100%,随着圆越来越小,识别率回越来越低,也就不能让这个辅助程序全自动,只能半自动化。至此,虽然不完美,有很多瑕疵,不过功能和流程是完善的

完整代码:

最后,贴个玩了几分钟的战绩。

没错,那个历史最佳就是当年蛋疼的玩了一个多小时的成果...

题图:pexels,CC0 授权。

本文来自企鹅号 - 编程派 媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

python
selenium
flash
游戏

本文来自企鹅号 - 编程派 媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

python
selenium
flash
游戏
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
推荐阅读
LV.
文章
0
获赞
0
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2024 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
还单身的红金鱼  ·  使用Python+Selenium制作Flash游戏辅助-腾讯云开发者社区-腾讯云
1 年前
还单身的红金鱼  ·  实战Flash游戏开发_百度百科
1 年前
小胡子的领带  ·  鹅厂内部干货|微信小游戏开发技术怎么应用? - 腾讯云开发者- 博客园
1 年前
小胡子的领带  ·  flash游戏引擎整理-腾讯云开发者社区-腾讯云
1 年前
小胡子的领带  ·  几个flash游戏引擎- AS3.0 - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号