微信号:CocosEngine

介绍:Cocos引擎官方账号,第一时间为您送上引擎动态、精品教程、达人专访等干货,还会定期举办有奖活动喔!

元旦娱乐:跳一跳秘籍传授,轻松过 4000 分

2018-01-01 23:58 王哲

元旦的朋友圈,都在刷小游戏。

有那么好玩么?我手残,玩不过你们,但是我可以用程序员的方式解决问题,嘿嘿嘿……



哈哈哈,不服来打我呀!这是一个基于区块链和大数据的人工智能代练平台,你们等着,我就去写白皮书发 ICO……有意向的风投可以先联系我。


哈哈,开玩笑啦,哪有那么复杂。


我开发外挂的第一个思路是:受到 bilibilli 上一个视频里的硬件方案启发,用乐高 ev3 机器人来做。因为 ev3 有颜色识别传感器嘛。但是具体做下去,发现控制硬件还是太麻烦了,尤其 ev3 的「图形化编程」不让直接写代码,真是超级麻烦,编码效率太低了。


所以第二个思路就是,纯软件解法,用 adb shell screencap 截图后,对图像进行分析,然后用 adb shell input 指令来模拟触摸时间。至于怎么图像识别嘛,这个容易,上卷积啊!没有什么是难得住老司机的。


结果我埋头编码的时候,同事跟我说,别写了,知乎和 github 上出来一大堆了,原理和你的类似,关键就是用 adb。哈哈这个好,省时间,我去 github 上搜索「跳一跳」,好家伙,竟然出来 387 个结果。


我试了几个,发现根本连挨个试的时间都浪费了。star 数量最高的就是最稳的,就是这个仓库,拿好了 https://github.com/wangshub/wechat_jump_game 人家连卷积都不用,直接 PIL 库的几个函数调用就搞定了,多简单。


当然前置工作需要安装:

  • python。cocos 引擎统一使用 python 2.7

  • adb。在 Android SDK 里面自带了

  • 有了 python 之后,还需要装配套的 pip ,再用 pip 安装图像处理库 PIL 


接着,对于我上面给出的这个开源仓库,需要手动修改的地方:

  • 需要根据自己的屏幕分辨率去修改 config/default.json。

  • 如果运行脚本之后,截图保存目录出错,那么就需要用 adb shell 进去看看自己安卓手机的目录结构,然后修改代码中对应的截图保存未知

  • 对于老版本的 adb,需要用 adb shell input touchscreen swipe 替代 adb shell input swipe


如果你的小人不幸掉下去了,那么就继续调整 default.json 里面的 press_coefficient 参数吧。


最终运行结果是这样的:


(此处应有视频,但是视频审核不过……没办法。各位去看我朋友圈吧)


我拿着这个视频去调戏跳一跳开发团队,对方说我们元旦都在加班做反外挂逻辑呢。唉你们腾讯不是很多人工智能专家么,把背景图片弄复杂一些,很多小方块小圆圈,让边缘检测、卷积都派不上用场,不就搞定了。


所以,你们如果还想用脚本刷分的话,估计也就这一两周了,后面版本一更新,可能只有李飞飞才能写得出外挂了。




好啦,跳一跳至少在更新版本一两周之内,是没啥挑战了。我们还是继续来玩《欢乐坦克大战》吧。坦克没有压力啊,和王者荣耀相比,没段位、不掉星、手残还不会被人骂,多好。


我推荐《欢乐坦克大战》的一个重要原因,当然是因为这款 IO 游戏是用  Cocos Creator 开发的啦!


(林顺快来上阵了。等等,我拿 buff )



欢乐坦克大战的唯一缺点,就是对我这样的王者老司机而言太简单了点儿~ 10 杀 2 死偷塔一波结束战斗,还有谁?




元旦假期结束了,别光顾着玩小游戏了。赶紧立项,用 Cocos Creator 开发出自己的微信小游戏去上线,才是最重要的事情。如果各位用 creator 开发出比《欢乐坦克大作战》更好玩的小游戏,记得告诉我哦!


 
COCOS 更多文章 微信小游戏适配层原理 & FAQ 微信小游戏开启!你准备好了没? 「技术分享」iPhone X 快速适配,快得让你出乎意料 辟谣:苹果禁止用 Xamarin, PhonGap, Appcelerator 等开发应 Cocos 社区水友自发线下技术交流会
猜您喜欢 Golang处理JSON(一)--- 编码 开源与创业 Rainbow 高亮括号 | Vim 软件质量稳定性之殇 Flask Basic Auth的实现