这段代码实现了一个名为'get_bw_map'的函数,其主要目的是生成一张黑白地图,用于在游戏中定位角色的位置。

该函数有三个参数:

  • 'gs': 指示是否获取游戏屏幕截图。
  • 'sbl': 指示是否识别蓝色物体。
  • 'find': 指示当前是否在搜索角色。

函数首先定义了几个颜色阈值,用于识别游戏屏幕中的不同颜色:

  • 'yellow': 黄色
  • 'black': 黑色
  • 'white': 白色
  • 'sblue': 浅蓝色
  • 'gray': 灰色

然后,函数定义了'shape'变量,表示黑白地图的形状。

如果'gs'为1,则调用'get_screen'函数获取游戏屏幕截图。随后,函数调用'get_local'函数获取屏幕局部图像。

'bw_map'是一个二维数组,用于存储黑白地图。 'b_map'则是另一个二维数组,用于检测角色周围是否有障碍物。

如果局部图像中的某个像素与灰色的差的平方小于等于3200加上'find'乘以1600,则该像素被视为障碍物。 'bb_map'是'b_map'的副本。

通过对'bb_map'进行膨胀操作,将相邻像素的值合并到'b_map'中。

如果局部图像中的某个像素与黄色的差的平方小于等于800加上'find'乘以800,则该像素被视为黄色物体。 在'bw_map'中,这些像素的值被设置为200。

如果局部图像中的某个像素与白色的差的平方小于等于3200加上'find'乘以1600,并且该像素周围没有障碍物,则该像素被视为白色物体。 在'bw_map'中,这些像素的值被设置为255。

如果'sbl'为1,则如果局部图像中的某个像素与浅蓝色的差的平方小于等于400,则该像素被视为蓝色物体。 在'bw_map'中,这些像素的值被设置为150。

如果'find'等于0,则裁剪'bw_map'以仅包含角色周围的物体。 否则,将'bw_map'向左上移动2个像素。

对于'bw_map'中的每个像素,如果该像素距离中心点大于85,则将其值设置为0。

如果'sbl'为1,则找出距离中心点最近的蓝色物体,并将其坐标存储在'his_loc'中。

将'bw_map'中的所有值为200的像素设置为255。

如果'find'等于0,则将'bw_map'保存为文件。 最后,函数返回'bw_map'。

总结来说,这个函数通过识别游戏屏幕中的不同颜色,生成一张黑白地图,进而定位角色的位置。 这是一种常见的图像处理方法,被广泛应用于游戏开发中。

游戏角色定位:黑白地图生成算法

原文地址: https://www.cveoy.top/t/topic/ol8G 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录