手机小游戏辅助程序的实现
这两天玩了一个微信的小游戏,想到以前的跳一跳可以通过模拟按键和截取屏幕的方式做辅助程序,所以想针对这个小游戏也做个机器人自动玩,虽然结果是失败的,但是也学到了点东西。
1.做这种小游戏机器人的关键点有两个,一个是模拟按键,一个是截取屏幕。模拟按键很简单,直接调用以下命令即可在安卓手机上任意一个坐标点击一次,部分手机记得在开发者选项里开启允许模拟点击
adb shell input tap x y
2.图像识别起初想和跳一跳一样,用adb shell来截图,但是发现这种方式速度太慢了,大概3秒一张图,跳一跳没有时间限制,而我现在玩的游戏有时间限制,所以截图速度要快,快速截图有以下几种
- 安卓手机内用APP截图,这种方式我觉得是最快的,因为可以直接把图像数据放在内存里,减少了IO,但是这种方式我自己没研究过
- PC上使用安卓模拟器,模拟器内玩游戏,然后用PC上的API截图,这种方式和第一种速度上不相上下,缺点是部分游戏不支持模拟器
- 使用局域网同屏APP,然后在PC上截图,这种方式也比较快,但是有一定的延迟,画质越高延迟越大,所以推荐可以自定义画质的同屏APP,我用过爱莫助手和AirDroid,前者画质虽然没后者好,但是延迟低且PC上不用额外安装软件,浏览器上就可以用
3.截取屏幕后,就可以根据游戏规则写算法来识别什么时候需要点击了,简单的游戏可以判断像素。复杂点的嘛。。。我也没研究过,所以不知道
4.至于为什么最后失败了,我觉得有两点
- adb shell input这种模拟点击方式不可靠,比如发送三次模拟点击,间隔300毫秒,虽然百分之90的情况都是点击了3次,但是依然有几率只会点击2次
- 对于速度要求高的游戏,同屏截图依然还是慢了
5.类似这种小游戏,还可以找到上报分数的地方拦截修改掉,或者修改游戏代码达到一些变态功能,因为这些小游戏的数据校验一般都在客户端
手机小游戏辅助程序的实现相关推荐
- 浅谈游戏辅助程序的制作 【经典】
0.前言 本文仅限于技术交流,文中所附数据纯属虚构,如有雷同,实在是巧合! 本文简单地探讨了一款游戏辅助程序的分析.制作方法,希望能对那些对此感兴趣的朋友们有些许帮助. 本人小菜鸟一只,水平有限,说得 ...
- 一款游戏辅助程序的分析、制作方法
0.前言 本文仅限于技术交流,文中所附数据纯属虚构,如有雷同,实在是巧合! 本文简单地探讨了一款游戏辅助程序的分析.制作方法,希望能对那些对此感兴趣的朋友们有些许帮助. 本人小菜鸟一只,水平有限,说得 ...
- 转 浅谈游戏辅助程序的制作
标 题: 浅谈游戏辅助程序的制作[原创] 作 者: qINGfENG 时 间: 2006-04-17,21:06 链 接: http://bbs.pediy.com/showthread.php?t= ...
- 团队开发--手机小游戏 需求分析
一.项目名称:手机小游戏 二.设计背景 我们团队认为现在是21世纪,人际关系往往能决定你的人生是一帆风顺还是坎坷不平. 相信大家都有这样的经历,同学或者各种关系聚会的时候,会有一些时间比较尴尬,不知道 ...
- 数字华容道java_从零开发HarmonyOS(鸿蒙)手机小游戏——数字华容道
前言 2月16号HarmonyOS2.0手机开发者Beta版已经发布了,作为"1+8+N"战略的重要入口和生态核心,怎么能少得了手机应用开发呢,今天将由深鸿会深大学习小组(Zzt_ ...
- 从零开发HarmonyOS(鸿蒙)手机小游戏——数字华容道
HarmonyOS(鸿蒙)手机第一个小游戏app--数字华容道 前言 概述 正文 创建项目 实现初始界面布局 实现数字的随机打乱 实现滑动或点击调换数字 实现游戏成功界面 源代码 结语 前言 2月16 ...
- 用C语言实现推箱子小游戏基础程序plus
目录 设计一个简单的推箱子游戏 功能设计要求: 代码实现 数据定义头文件data_def.h 窗口设置头文件WindowsSet.h WindowsSet.cpp 上移函数 矩阵旋转函数 游戏帧 菜单 ...
- 用 Node.js 写微信小游戏辅助
似乎使用 Python 写各种辅助的居多,我们来走一波 JS 流吧! GitHub:weixin-game-helper ? 微信小游戏辅助合集 目前已有的游戏辅助: 包你懂我 大家来找茬腾讯版 头脑 ...
- 小游戏“终结者”程序的设计与实现
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...
最新文章
- json_decode的结果是null
- [转载]Guice 1.0 用户指南
- 服务器控件的异步请求——UpdatePanel和ScriptManager
- spark submit参数及调优
- 巴西政府考虑用微软产品替换开源软件
- 【面试题总结】2、反转字符串的几种形式
- java 的记住用户名和密码,JAVA--高级基础开发Cookie实现记住用户名和密码
- matlab的蝶形运算,第五章快速傅里叶变换(蝶形运算).ppt
- 简述整车级电子电器架构开发内容
- CCF 201903-1 小中大
- 注解@NotEmpty、@NotBlank、@NotNull三者的区别及使用范围
- 使用Certbot申请ssl证书
- java实现word转pdf(功能转载)(亲测验证)
- SendCloud从注册到邮件发送使用心得
- html5批量修改本地文件名,文件名批量更名技巧;将文件夹名添加到文件名上-批量修改文件名...
- 【Vue.JS】Vue.JS 表格内容排序组件,Render函数的使用
- 第五章 彩色图像处理
- 西门子采用三井化学的UNISTOLE™作为3D打印医用级面罩的涂层剂
- CRM客户关系管理系统答辩技术介绍(简答)
- STM32实现双通道ADC采集电压电流值
热门文章
- c/c++ socket函数详解
- 高俪锅 因为一个传说的美丽老板娘 有图有真相 总结筒子们认领合照了
- 帝国CMS7.5默认首页模板太难看,如何修改首页模板样式
- 软件设计模式:三个类别,23种方法
- 我昨晚给1万个CIO和500个企业软件老板讲了堂课
- 大白 移远BC95/BC35-G NBIOT模组简介
- python输入成绩并且计算平均分
- windows10(家庭版)和windows11(家庭版)开启WSL2
- 用php创建数据库代码,php创建数据库_PHP MySQL 创建数据库与表示例
- 【Unity植物大战僵尸】第二个植物豌豆射手(九)