基础的知识告一段落,我们开始试着写一个完整的脚本,一个脚本肯定离不开的三个东西—-框架、逻辑、功能点,一个好的框架可以让我们更方便的管理脚本,增删改查都变得更加方便,有利于功能函数的重复利用;脚本的逻辑,采用稳定的判断,并给出一定的超时检测,让脚本更加稳定的运行,并在出问题时有更好的处理方式;功能点主要是根据游戏的逻辑来制定,每个游戏都有自己的逻辑,需要根据特定情况来考虑。
本期视频主要进行一个游戏脚本的分析(之前写的,游戏的功能可能并不实用,主要学习想法与思路,另视频讲的有点乱,请见谅,之后附上代码)
1. 框架
作为一个完整的脚本,我们需要的功能往往不止一个,还需要用户能够自己勾选需要的功能,如果没有一个整体框架,那么编写起来,越到后面代码越乱,甚至会出现大量重复的功能,因此,一个自己习惯的构架至关重要,这里我提供出我习惯使用的构架:树形结构。
我们将所有功能都写在函数内,将所有的函数当做一个个的节点,由统一的一个入口函数进行管理,要进行哪一个分支(节点),如图,比如脚本具有两个功能,分别为B和C,他们由同一个入口A进入,在A中进行判定(用户的选择),然后确定执行哪个,比如选了B功能,并且将B功能的2个分支都选择了(比如B为签到,并且有周签到月签到两种),我们先走其中一个分支,等做完了之后,我们可以再回到他们的起点(可以是前一个分支B,也可以是更早之前的分支A),然后走另一个分支。那么,如何确定一个个的节点呢?这里我们根据函数是否可以重复利用来判定,如果一个功能函数在其他功能中也能用到,那么我们就可以单独出来做成一个函数(确定一个节点)。
使用此框架可以方便的进行脚本的功能增删改查,如果你还没有形成自己独特习惯的编写方式,不如就使用这个吧!
2. 逻辑
逻辑分为脚本的逻辑和游戏的逻辑,这两者不可分离,我们写脚本的逻辑也要根据游戏的逻辑来进行,手机的反应速度,操作的网络延时,游戏的反应情况,这些都需要考虑进去,因此,我们需要一个稳定的判定,最简单的方式就是,需要对我们每一下的操作产生的变化进行捕捉,并且设置一定的超时机制,直到捕捉到变化才确定此次操作成功,并且根据捕捉到的变化确定游戏当前的情况来进行下一步的处理。
我们看一下上面这个图片,我们需要点击做一个任务,需要点击好友进去,于是我们使用图色操作捕捉到了这个按钮的图片,但是这里我们需要分析一下,首先,这个任务能不能进行,我们仔细的观察到,右上角有一个红点,这表示此任务还未完成,于是我们可以先判定一次红点是否存在,如果不存在:
比如这样,那么我们就跳过此任务,如果存在,那么就继续进行下去,我们需要点开它,这个时候,会先联网获取好友列表,说明这个延时是根据网络时间来判定的,我们不能简单的写一个固定的Delay来判定,我们知道,经过网络返回数据后,界面就会有变化,比如从读取状态变成好友列表显示,或者网络读取框的消失,这些我们都能捕捉到:
我们的每一步操作都能够确保操作成功,那么脚本就相当稳定。
至于游戏的逻辑。。。我们结合下一个功能点进行讨论。
3. 功能点
功能点的制作,最重要的是对于游戏的了解,我们需要知道游戏的哪一个功能最为实用,也最多人需要(千万不要学我没了解游戏就进行开发),游戏的功能点不止一个,于是我们可以封装成一个个的函数,他们之间互不影响,即使有部分相同的逻辑,也要分开写,毕竟脚本不是越短越好,第一要点还是要我们能看懂能方便修改添加为主,功能点分开能确保不会因为修改而导致其他的功能点出现问题。
一个功能点的实现方法往往不止一种,我们可以根据效率或者稳定度来来确定使用的方式,我们来看看一个签到就有哪些判定方式:
打开签到的界面,我们能找到一个这样的界面,可签到的周围还有一圈粒子效果,一直在转圈,我们通过观察,可以看出两条效果成180度,因此我们取他们相对位置相同的两个点判断,直到寻找到,由于粒子效果一直在动,可能要寻找多次才能找到(但是寻找速度非常快,这点耗时不算什么),这是一种办法,还有其他办法吗?我们尝试着点击签到,可以发现这样的变化:
相应签到天变成了这样的图,背景变灰色,有个大大的打钩,这样我们就能根据这个打钩来判定当前已经签到第几天,我们点击它的下一天就能够为下一天签到了。这种方式可以非常稳定的判断出天数,只要判断一次图色就能够得出结果,速度最快,但是写法也相对麻烦。我们还有更简单的办法吗?答案还是有,我们可以用最简单的方法,我们把签到的7个位置全部点个遍,这样也能达到目的,但是并不推荐使用。
说了这么多,还是看看代码与视频更实在(上千行代码放送)
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。