4399 小游戏宠物连连看经典版 2脚本开发攻略

4399 小游戏宠物连连看经典版 2脚本开发攻略

游戏挂机脚本制作_脚本制作游戏网站_怎么制作游戏脚本

浏览器打开游戏窗口(单一窗口)。游戏主界面的截图需要两个坐标(左上角坐标和右下角坐标)来确定。原点一般是屏幕的左上角。不确定坐标点值的同学可以全屏截图。使用图像编辑软件查看坐标值。

获取窗口句柄,这里是浏览器标题栏的标题(右键-查看源码-标题,加上软件名称),例如:“宠物连连看经典2、宠物连连看经典版2小游戏、4399小游戏- 谷歌浏览器”。拿到窗户把手就可以出发了。

整体开发思路:截取游戏主图像--->将其分割成小图--->比较每个小图,比较图像的熟悉程度,并将数字存储在矩阵中--->进行可连接的计算矩阵--->模拟点击。

获取窗户把手并将窗户放在上面

Python可以使用win32gui模块调用Windows API来操作窗口。使用 FindWindow() 方法获取窗口的句柄。需要传入两个参数,第一个是父窗口句柄(这里填0即可)。第二个参数是窗口的名称(选项卡标题 - Google Chrome)。获取句柄后,通过SetForegroundWindows()将窗口设置到前面。这里可以传入游戏窗口的报告。代码如下:

截取游戏界面、分割图标、图片对比

验证该程序需要一些时间。如果捕捉到的画面不好,就会影响后续的操作,所以最重要的是确认游戏左上角和右下角的坐标值,以及宽度和高度每个小图标。如下图,首先截取整个游戏界面图,然后划分小图标,然后比较各个图标,然后将图标替换为数字,存入矩阵中(这里的数字矩阵与游戏不一致原理相同)。

怎么制作游戏脚本_游戏挂机脚本制作_脚本制作游戏网站

根据初始化设置的左上角和右下角两个坐标,使用ImageGrab.grab()方法进行截图,传入一个元组。然后将大图像分割成小图标并存储在images_list中。在数组中。

将上面代码切出的小图标转换为数值矩阵。如果图标已存储在image_type_list中,则返回索引。如果不存在,则会追加。那么当前的长度就是新添加的图标的编号。代码如下:

上面的getIndex是比较图片来判断图标是否出现过(image_type_list中是否已经存在,如果没有出现则添加)。这里使用汉明距离来判断两张图片的熟悉程度,阈值设置为10,当小于阈值时,就认为是同一张图片,具体代码如下:

程序核心-图标连接算法(寻路)

这里我们只简单分析一下算法代码。如果对程序不太理解,可以留言,我们稍后用图文结合的方式来分析。

通过上面的展开过程,基本上得到了如下的矩阵。只需比较具有相同数字的两个值即可找到可连接的路径。如果找到游戏图片素材,则模拟点击操作。这里简单介绍一下游戏规则: 8行×12列的游戏图标区域。外围的0实际上表示寻找路径时可以通过。例如,坐标(1, 1)可以与(1, 10)连接,(7, 1)可以与(7,2)连接。

方法的思想:要找到一条路径,首先找到一组可以水平和垂直直接连接的坐标。例如坐标p1(1,1)这样的集合有[(0,1),(1,0)],另外坐标p2(1,10)的可连通集合是[(0,10) )],然后比较p1和p2的可连接坐标集。如果集合中也存在可连通的坐标游戏素材,则说明p1和p2是可以连通的,显然,(0,1)和(0,10)在同一直线上,可以连通,也就是说存在可连通的p1 和 p2 之间的路径。代码如下:

简单分析一下代码实现过程:在isReachable()中传入需要比较的两个坐标值怎么制作游戏脚本,然后获取水平和垂直方向上两个点可以连接的坐标集(isRowConnect()、isColConnect( ))怎么制作游戏脚本,最后遍历集合。比较一下是否有可链接的。如果存在,则表示两个传入的坐标可以连接起来。

学习这样的游戏辅助脚本对于个人培养编程兴趣也是很有帮助的。也算是下班后很好的消遣。以后我会在这些方向上进行更多的学习和学习。

文章来源:https://www.toutiao.com/article/6757664043231609351/?