• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[郭立员] [安卓按键]关于“合成类”游戏脚本的编写思路 [复制链接]

1#

合成类游戏基本玩法就是同样游戏角色拖动到一起,就可以合成一个高一级别的新角色。




对于我们写脚本来说,首要解决的问题就是如何准确识别角色的级别,以上图为例,每个人物左侧有一个编号,这个数字就是角色的等级。


针对于这个游戏,人物虽然在不停的颤动,但是级别的数字是固定不动的。所以这个对于我们识别是比较容易的。


在识别的过程中,为了提高识别效率,我们只识别12个人物所在的位置区域,当然别的游戏可能16格或者更多,暂时不考虑无格子的类型啊。


识别完第一个人物等级,再识别第二个人物等级,这个识别范围的变化是有规律的,先横向依次移动4个格子,然后在第二行、第三行执行同样的操作。这种代码表示就是双重循环。

  1. For j = 0 To 2
  2. For i = 0 To 3
  3. //要循环的内容
  4. Next
  5. Next
复制代码

假定我们初始位置是x0,y0,也就是下图中红框左上角的点坐标。

红框的大小是每个人物占的位置,宽度x,高度是y,这个距离一定要测量准确,不能瞎填




得到上面的数据以后,我们的找图范围就可以定下来了。


x0+i*x,y0+j*y,x0+(i+1)*x,y0+(j+1)*y

  1. For j = 0 To 2
  2. For i = 0 To 3
  3. //找图范围是 x0+i*x,y0+j*y,x0+(i+1)*x,y0+(j+1)*y
  4. Next
  5. Next
复制代码

这个范围是随着循环而有规律变化的,保证每次循环找不同区域。


下面是识别数字,我的思路是从小到大,原因是小的人物合成会变成大一级别的人物。这样识别操作会友好一些,不过也不唯一看个人习惯。


接下来要解决的拖动合成问题了,拖动合成分两个步骤:


①确定有两个一样等级(数字相同)的人物,获取他们的坐标。

②把第一个人物拖动到第二个人物上。


我解决这个问题的思路是,用一个数组存储坐标。


比如,我获取到等级为11的人物坐标,当获取到第一个以后,我会先存入数组中备用,之后我会继续往后识别看看还有没有等级11的人物。


到这里有两种可能性:一是还有1个或多个等级11的人物,二是没有等级11的人物。


先说第一种情况:还有等级11的人物,把获取到第二个等级11人物的坐标再次存入到之前的数组中。这时数组里面就有两组坐标。之后加个判断当数组里面有两个内容以后,执行拖动人物的操作(滑动)。下面的操作很关键,拖动完以后,原有的坐标已经没用了,清空数组里面的坐标,开始新的识别操作,以上操作重复执行。


第二种情况:也就是没有识别到等级11的人物,那么此时说明整个画面上就只有一个11级的人物,那么11级的识别结束到此为止。开始识别等级12的人物。这个时候一定要注意,也要清空数组的坐标,否则会出现这种情况:就是数组中存在等级11的坐标,又再得到一个等级12的坐标,误以为两个是同等级人物的坐标,而执行了拖动人物合成的操作。


关于拖动人物合成这一步就比较简单,一个滑动命令解决了,每次拖动成功以后,点一下购买新的人物,补充因合成后造成的空缺。


在识别的时候,我是用的找图命令,每个数字截一个图,之后每张图用数字命名,目的是把循环的计次变量作为找图的名称。


比如像找等级6-10,就可以这样写,n作为图片名称的变量。

  1. For n = 6 To 10
  2. FindPic 0, 0, 0, 0, "Attachment:"&n&".png","000000", 0, 0.9, intX, intY
  3. If intX > -1 And intY > -1 Then
  4. End If
  5. Next
复制代码

关于合成基本思路就是这样的,这类有固定格子的都可以用这个思路。当然也会有一些“意外情况”,比如金币不足,出现飞过去的宝箱等等,遇到这种情况加上对应的判断。

点评

果壳王子  配图很到位,思路很清晰,鉴定为佳作!  发表于 2021/11/15 15:49:46

    已有1评分我要评分查看所有评分

    最后编辑郭立员 最后编辑于 2021-11-15 15:30:32
    本主题由 按键精灵总策划 果壳王子 于 2021/11/15 15:49:04 执行 批量删帖 操作
    扫码免费获取我的基础教程【视频教程】
    扫码下方二维码关注我的公众号:3分钟学堂

    QQ交流群:936858410
    2#

    我想学高级点的,老师加油!!!

    3#

    又一新贴?

    发新话题 回复该主题