手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。
实现原理:
比如一个 游戏 的任务,你需要在不同的手机屏幕上进行一系列点击,滑动,甚至输入文本,发送语音等动作后才能完成,而这一切操作其实就是手机中会记录这些动作的文件,文件存储的是一个又一个的信号量,这些信号然后根据不同厂商的设定反馈给上层,而上层会根据反馈的信息转换成统一识别的事件,事件最后响应给应用,并对信息进行相应的处理,最后呈现给用户并实现它,这一些列的动作都是可以通过一些现有的工具或者说解决方案来帮我们实现自动 游戏 的功能。
一般实现的方式 :
1.通过USB连接电脑,然后通过ADB(一种android的调试工具,当然iOS也有类似的工具一个原理)对手机进行远程的控制;
2.通过在手机中安装一个控制其它app的app来控制,说简单点就是生成一个手机应用,在手机中运行后,直接通过这个应用对其它应用进行操作
实现方式我们明白了,那么要借助哪些工具或者说哪些解决方案来帮我们进行实现呢。
易语言解决方案:
首先我们来说一说这个被大多数人所知道的,但是又被"正统"程序员所抵触的编程语言。
这是一款运用中文进行编程的语言,可以说它让大多数人摆脱了"英文魔咒",很多人认为学习编程其实就是学英语,或者英语不好没办法学习编程,这其实是错误的理解,这个后话了,等我有空了再为大家分享下如何摆脱这个魔咒。
优势:
1. 中文化编程,中文毕竟是我们的母语,在更加让人容易理解;
2. 在 游戏 相关领域有非常成熟的框架,或者中支持库;
3. 使用这种解决方案的人群非常多,当你遇到问题时很容易找到解决办法;
劣势:
1. 代码的编译速度相对其他语言来说很慢;(对于现在的电脑硬件来说其实已经没啥大碍)
2. 会被其他编程语言鄙视,太local化了,没有那种国际感;
3. 收费;(虽然作者初衷是推广中文编程,但是推广也是要钱的嘛,能理解)
4. 易语言需要进行一定的学习,相对其他几个解决方案来说难度略高;
易语言解决方案总的来说,由于是中文的并且有大量现成知识库做支撑,很容易就能实现功能,所以一直被用来作为中控型的脚本来编写,不大会被用来进行生成app的方式来进行(有app化的解决办法,但是不稳定不讨论)
按键精灵解决方案:
案件精灵可以说是这个领域里, 历史 悠久且非常出色的一位前辈。非常简单就能上手,甚至有通过录像然后转成脚本的录制功能,当然要制作出优秀的脚本也需要进行一定的学习;
优势:
1. 非常简单,容易上手,有非常丰富的快捷方式;
2. 有录制功能,更进一步降低了制作门槛;
3. 历史 悠久人群稳定,所以社区也很稳定,遇到问题很容易找到解决办法(注意我说的是群体,不是按键精灵的论坛。)
4. 按键精灵非常良好的提供了解决方案,即可生成app直接手机中运行,也可以通过安装按键的android版然后传送脚本进行运行。
劣势:
1. 付费,且不便宜;
2. 代码框架实现是基于英文实现;
3. 无法进行分文件管理,就是说所有业务要写进一个文本里,这其实非常不方便管理和维护;
按键精灵解决方案,比较适合对编程没有什么基础的朋友上手。网络上也有非常多的免费教程可以进行学习。
触动精灵解决方案:
触动精灵是近几年新启一个新的平台,是基于lua语言来进行编写开发的,与按键精灵类似,不过相对按键的名声赫赫,就有点显得小很多。
优势:
1. 支持文件化管理开发;(这点其实非常棒,对于后期的代码开发或者维护来说都很棒)
2. 基于lua开发,所以可以完美利用lua的原表特性来进行一些框架搭建,更加适用于负责的点击事件;
3. 拥有一套完善的支持自动化的库,可以直接拿来使用;
4. 支持远程调试,脚本传到手机中运行,也可以生成app进行控制;
劣势:
1. 需要学习lua语言,对小白来说有点不友好;
2. 需要付费,相对按键来说比较便宜;
3. 偏小众,出问题想找解决办法非常难找;
4. 对于android和iOS系统收取不同的费用来打包生成apk;
5. 代码框架也是基于英文进行实现的;
触动精灵的解决方案,好于能利用lua的原表特性来进行自定义框架开发,方便自己的后续的多次开发。网络上也有很多的教程来进行学习,就是遇到问题需要解决的时候,总会找不到办法,这里有点难受。
Auto.js解决方案:
这套方案是借助于android手机的无障碍服务进行实现的,根据控件的id进行一系列的事件响应,精准度更高。
优势:
1. 无需root就可以实现控制手机;
2. 可在手机中运行,也可以打包成apk运行;
3. 通过控件id进行控制,准确度非常高,并且自适应分辨率;
劣势:
1. 对 游戏 不大友好,因为 游戏 很多时候控件都不规则,都是一个个画布;
2. 需要学习js
3. 基于英文实现的代码框架;
Auto.js这个解决方案,对于 游戏 来说并不大友好,虽然也有找图找色等功能,但是使用起来并没有按键或者触动那么方便,并且由于是基于空间id进行控制,并不大适合 游戏 。
其他解决方案:
其实还有其他非常多的类似的解决方案,但是大多数都没上面列举的这些被人熟知。
举个例子像python也拥有非常丰富的类库,但是只能适应使用usb连接手机的通过adb进行控制这样的操作,无法生成一个apk来安装到手机中进行操作,我也曾尝试过在手机中模拟一个python环境,但是依赖的类库无法非常方便的移植到手机中,就算静态编译过去也非常的耗时,所以python也能实现但是他很不友好,也很不方便,学习成本也非常高。
跟你简要说一下我的自学路,以免你走弯路背景:
有工作,而且很忙;在不影响工作基础上用业余时间鼓捣(经常会因为工作耽搁学习进度);基本没技术背景(初中qbasic、高中pascal半吊子),大学文科,工作也不是搞代码。因此我感觉我的自学路跟你还是挺契合的。
1
两年前的一天,决定要做独立游戏制作人。选定引擎cocos2d,开始学习objective-c语言;(如果你打算只在iOS平台开发可以学obj-c配合cocos2d或者sprite kit;如果打算跨平台就要用cocos2d-x和c++了;当然unity什么的也不错但是我还没尝试过,一直很向往)
2
我跳过了iOS程序开发(似懂非懂看完了斯坦福那一系列的教学视频),结合当时情况直接选择了cocos2d引擎,这时开始接触 @吴一刀 推荐的博客;我主要看的是子龙山人<子龙山人 - 博客园>、Ray Wenderlich<Ray Wenderlich>、Himi<黑米GameDev街区>这些博客里最基本的例子,知易那个以我当时的水平还看不懂。
3
尝试开始设计自己的简单游戏,我做打地鼠!当然比教学例子里的打地鼠复杂多了
4
这个过程中发现自己懂的实在是不够,所以又开啃这本书:Learn cocos2d 2 by Steffen Itterheim &Andreas Low
5
慢慢的发现需要一些趁手的工具和编辑器,并发展出一套自己构建于cocos2d之上的游戏设计架构。我目前的情况是这样:
关卡编辑我使用plist文件配合自己写的类;
sprite sheet使用TexturePacker<TexturePacker>;
动画/UI编辑最初自己手写太累,后来选择了cocosbuilder,请注意现在这个软件已经停止维护,转而引导用户使用SpriteBuilder<SpriteBuilder>(域名都做了自动跳转;SpriteBuilder我木有研究过,建议你研究一下)。
粒子编辑我自己还没实际用到,如果真正需要我感觉cocosbuilder的够我用的。//更新:后来用到了ParticleDesigner和cocosbuilder两个软件的粒子编辑混搭
我当时遇到的一个大麻烦是如何让cocosbuilder、cocos2d版本互相兼容且cocosbuilder无问题。大概情况是这样:cocosbuilder2.1和cocos2d-iphone2.0及2.1版本都不协调怎么办?;What version of Cocosbuilder and Cocos2d-iphone should I choose?
目前我使用的cocosbuilder 2.1版本(渐变层有bug、并且很可惜动画播放完没有触发消息的机制,我只好把每个动画时长都手动记录一下自己处理)
======3月12日更新======
在 @GarfieldKwong 指点下发现这个版本动画播放完是可以触发消息机制的,更高级版本3.x支持的效果应该是在动画中就加入callback的关键帧
新技能get√
具体代码可见下面学习案例的第一个例子里Explosion部分
=====================
cocosbuider的学习可以看两个例子Creating a Game with CocosBuilder;Introduction to CocosBuilder;然后就是多用多尝试。
6
整个学习过程要学会查资料、学会寻求帮助,我主要用的stackoverflow(话说刚刚发现stackoverflow的reputation喜过15,终于可以投票了:)
在学习过程中得到了子龙山人(我认为本尊是这位 @屈光辉 )、LearnCocos2d作者Steffen、 @kubisoft 以及众多网上朋友的帮助,再次表示感谢。
7
硬件及开发者资格:看完c++开始看obj-c,这个过程一直是使用的vmware虚拟机安装的mac系统写程序;然后入手一个最便宜的mac pro、以及iPhone,尝试玩各种游戏;从看c++开始大约过了1年半(已经有非常简陋的游戏demo)才真正购入iOS开发者资格并开始真机测试。
8
尝试过的一些其他工具、各种弯路和坑、以及发散内容:
可以拖拽方式写代码的stencyl <Stencyl: Make iPhone, iPad, Android &Flash Games without code>;
最初学的不是ojc-c而是谭浩强老师的c++程序设计(虽然有人不喜谭老师,但那书是中文的让我对面对对象程序设计有一些初步的概念,再看英文的obj-c不至于太摸不着头脑,反正手头正好有这么一本买了6年没看的c++。。。);
尝试过<Tiled Map Editor>但自己目前的坑没有用到;
尝试过一点物理引擎和粒子,但自己目前的坑没有用到;现在粒子用到了,做了火焰等效果,也挺美的;但是一定要注意CPU占用优化,内存方面我最低支持4S没遇到大问题
学习音乐制作,这个我小时候学琴一直也喜欢音乐所以有一点点底子,如果没有基础可能上手有门槛;开始用的软件LMMS,但是音源插件在64位系统的问题我一直没解决掉时间精力也不多,所以是暂时停滞了;最近发现Garage Band可能也可以写歌;另外还试过一个很有历史的微软的音乐自动编辑器,很好玩,用来做背景音乐也不错。
入手手绘板学画画(这中间纠结了好久才决定用位图不用矢量图),如果你能找到热爱游戏的美术同学一起搞那最好不过。但是我一直对画画心痒难搔。。。所以入了这个深坑,晒一晒:
转载
z